ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
20 visibility
موضوع: آفیس توسط:

برایان یک ردیف اعداد با 240 خانه دارد. در این ردیف، اعداد به طور پیوسته در حال کاهش هستند و در نهایت، در نقطه ای از آن 240 خانه، 0 می شوند. صفرها همچنان سلول های باقی مانده در ردیف را پر می کنند. برایان باید معادله ای بنویسد که آخرین مقدار غیر صفر در ردیف را برگرداند.

روش های مختلفی وجود دارد که می توان مقدار مورد نظر را برگرداند. (به نظر نمی رسد همیشه در مورد اکسل چنین باشد؟ شما می توانید راه های زیادی برای به دست آوردن نتیجه پیدا کنید.) به طور کلی، می توانید از یک فرمول معمولی یا یک فرمول آرایه استفاده کنید.

اگر می خواهید از یک فرمول معمولی استفاده کنید، در اینجا می توانید یکی را امتحان کنید:

=OFFSET(A6,0,(COUNT(A6:IF6)-COUNTIF(A6:IF6,0))-1)

تابع COUNTIF تعداد مقادیر صفر را می شمارد و تابع COUNT تعداد سلول های محدوده را تعیین می کند. کم کردن یکی از دیگری و تنظیم با 1، مقدار OFFSET را به "آرایه" سلول هایی می دهد که آخرین مقدار غیر صفر در آن قرار دارد. این فرمول فرض می کند که مقادیر از ستون A شروع می شوند. اگر آنها از ستون دیگری شروع می شوند، باید مقدار ارائه شده توسط بخش COUNT/COUNTIF فرمول را برای نمایش آفست ستون اول تنظیم کنید.

در اینجا یک تغییر کوتاه تر از فرمول، بر اساس انجام یک افست از سمت راست دامنه به جای سمت چپ وجود دارد:

=OFFSET(IF6,0,-COUNTIF(A6:IF6,0))

در این مثال مهم است که IF6 انتهای راست واقعی محدوده باشد. این فرمول با شمارش تعداد مقادیر صفر در محدوده (همه در سمت راست محدوده) و سپس محاسبه آدرس سلول آخرین سلول (IF6) منهای تعداد صفرها کار می کند.

در اینجا نسخه ای است که به جای آن از تابع INDEX استفاده می کند:

=INDEX(A6:IF6,,MATCH(0,A6:IF6,0)-1)

این نسخه با استفاده از تابع LOOKUP حتی کوتاهتر است:

=LOOKUP(1,1/(6:6>0),6:6)

از فرمول های آرایه نیز می توان استفاده کرد. (فرمول های آرایه با فشار دادن Ctrl+Shift+Enter وارد می شوند.) این یکی از تابع INDIRECT استفاده می کند:

=INDIRECT("R6C" & MAX((A6:IF6>0)*COLUMN(A6:IF6)),FALSE)

این فرمول آرایه از پیاده سازی جالب تابع LOOKUP برای یافتن نتیجه صحیح استفاده می کند:

=LOOKUP(9.99999999999999E+307,IF(A6:IF6<>0,A6:IF6))

در اینجا فرمول آرایه دیگری وجود دارد که می تواند استفاده شود، این بار با استفاده از تابع OFFSET برای یافتن آخرین مقدار غیر صفر در ردیف 6:

=OFFSET(A6,0,MIN(IF(6:6=0,COLUMN(6:6),300))-2)

در اینجا یک تغییر حتی کوتاهتر وجود دارد:

=MIN(IF(A6:IF6>0,A6:IF6))

همه این فرمول هایی که تاکنون ارائه شده است به این واقعیت بستگی دارد که اعداد در ردیف در واقع کاهش می یابند - آنها از هر عدد ابتدایی که باشد می روند و به طور پیوسته به سمت صفر می روند. اگر اعداد کاهش نمی یابند، می توانید از نوع دیگری از فرمول آرایه برای تعیین آخرین مقدار غیر صفر در ردیف استفاده کنید:

=INDEX(6:6,MAX(IF(A6:IF6<>0,COLUMN(A6:IF6))))

این فرمول ابتدا حداکثر ستونی را در سطر (در این مورد ردیف 6) که مقداری برابر با صفر ندارد تعیین می کند، سپس از تابع INDEX برای دریافت مقدار از آن ستون در آن سطر استفاده می کند.

همانطور که می توانید بگویید، راه های زیادی برای یافتن آخرین مقدار غیر صفر در یک ردیف وجود دارد. یکی را انتخاب کنید که نظر شما را جلب کند. در این مورد هیچ درست یا غلطی وجود ندارد.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 116 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 65 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 37 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 41 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

116 نفر آنلاین
0 عضو و 116 مهمان در سایت حاضرند
بازدید امروز: 1595
بازدید دیروز: 25180
بازدید کل: 20338950
...