جست و جو از انتهای لیست (ترفند تابع LOOKUP) | بلاگ

جست و جو از انتهای لیست (ترفند تابع LOOKUP)

تعرفه تبلیغات در سایت

آخرین مطالب

امکانات وب

در تمامی توابع جست و جو، عمل جست و جو از ابتدای لیست آغاز میشود در حالی که بعدا میخواهیم جست و جو از انتهای لیست انجام بگیرد، برای مثال زمانی که بخواهیم اخرین تاریخ وثوع یک رویداد یا آخرین موحودی یک کالا به دست آوریم. بدین منظور از تابع LOOKUP استفاده میشود.

ورودی های تابع LOOKUP

تایع lookup به عنوان یکی از اصلی ترین توابع اکسل می‌باشد و برای استخراج اطلاعات از جداول مختلف و ایجاد رابطه میان آنها مورد استفاده قرار میگیرد. این تابع با دریافت سه ورودی زیر کار خود را انجام می دهد.

ورودی ۱:  آنچه به دنبال آن هستیم، برای مثال اگر به دنبال مشخصات کالای A هستیم، در ورودی اول ثبت میکنیم “A”.

ورودی ۲: محل جست و جو یا محلی که اطلاعات در آن ثبت شده است، در این ورودی مشخص میکنیم در کدام ستون عبارت “A” را جست و جو نماید، برای مثال اگر نام کالاها در ستون D ثبت شده باشد، مینویسیم D3:D12

ورودی ۳: در این ورودی مشخص میکنید مقادیر ثبت شده در کدام ستون به عنوان خروجی گزارش داده شود.

مثال


برای مثال اگر در بالا به دنبال تعیین تعداد موجودی کالای A هستیم، میتوان از فرمول زیر در این خصوص استفاده نمود.

=Lookup(“A”,D3:D12,F3:F12)

فرمول فوق به دنبال حرف A در محدوده D3:D12 میگردد و در صورت پیدا کردن آن در این محدوده؛ معادل آن در محدوده F3:F12 را خروجی می دهد ولی فرمول فوق همواره اولین موجودی ثبت شده برای کالای A (عدد ۱۰۰) را به عنوان خروجی می دهد ولی ما به دنبال آخرین موجودی برای کالای A (عدد ۲۶) هستیم نه اولین.

به منظور تعیین اخرین موجودی کالای A میتوان از فرمول ذیل استفاده نمود.

=Lookup(2,1/(D3:D12=”A”),F3:F12)

 

نگاهی دقیقتر به فرمول

در تحلیل فرمول فوق، ابتدا ورودی دوم را بررسی میکنیم، در این ورودی ابتدا قسمت D3:D12=”A محاسبه میگردد که بررسی میکند سلولهای داخل محدوده D3:D12 آیا برابر با A هستند یا نه که خروجی آن برای هر سلول برابر است با True یا False، در نتیجه خروجی این قسمت از فرمول برابر با 

={TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE}

حال با جایگذاری موارد فوق در فرمول ذیل ورودی دوم تابع مشخص میشود.

=۱/(D3:D12=”A”)

در واقع نتیجه قسمت داخل پرانتز فرمول مقادیر True و False می باشد که با ضرب یا تقسیم کردن آنها در یک عدد به ترتیب به ۱ و صفر تبدیل میشوند پس حاصل عبارت فوق برای سلولهایی که برابر با A می باشند معادل با ۱ تقسیم بر True یا ۱ /۱ می باشد و برای سلولهایی که مقدار آنها مخالف با A باشد برابر با ۱ تقسیم بر False یا ۱/۰ که برابر با خطای Dive/0 # است می باشد، پس حاصل ورودی دوم در این فرمول برابر است با :

={۱;#DIV/0!;#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;1}

به عبارت دیگر حاصل ورودی دوم تابع برای سلولهایی که برابر با A هستند مقدار ۱  و برای سلولهایی که مخالف با A هستند مقدار خطا تقسیم بر صفر می باشد.

 

با جایگذاری مقادیر ورودی دوم در تابع، میتوان فرمول را به صورت ذیل نوشت

=Lookup(2,{1;#DIV/0!;#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;1},F3:F12)

که مطابق با آن به دنبال عدد ۲ در مجموعه ذیل می‌گردیم.

{۱;#DIV/0!;#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;1}

در حالی که این مجموعه اصلا شامل عدد ۲ نمی باشد ولی با توجه به این که در تابع Lookup  عمل جست و جو به صورت Approximate Match انجام میگیرد، در این حالت آخرین عدد نزدیک به ۲ عنوان خروجی داده میشود که در این مثال برابر است با آخرین سلول با مقدار ۱ (به عبارت دیگر آخرین سلولی که در آن مقدار A ثبت شده است). که مقدار معادل آن در محدوده F3:F12 برابر است با آخرین موجودی کالای A

...
نویسنده : بازدید : 1 تاريخ : جمعه 11 خرداد 1397 ساعت: 22:11