بهبود عملکرد VLOOKUP

فهرست

چگونه چتر نجات را به درستی بسته بندی کنیم؟

سود. ویرایش 2، اصلاح شده.

فرض کنید جدول سفارشات زیر را داریم:

بهبود عملکرد VLOOKUP

ما باید بدانیم که مثلاً مبلغ دستور سوم ایوانف چقدر بوده یا اینکه پتروف دومین معامله خود را چه زمانی انجام داد. تابع VLOOKUP داخلی فقط می تواند اولین رخداد نام خانوادگی را در جدول جستجو کند و به ما کمکی نخواهد کرد. سوالاتی مانند "مدیر سفارش شماره 10256 چه کسی بود؟" نیز بی پاسخ خواهد ماند، tk. VLOOKUP داخلی قادر به برگرداندن مقادیر از ستون های سمت چپ جستجو نیست.

هر دوی این مشکلات به یکباره حل می شوند - بیایید تابع خودمان را بنویسیم که نه تنها به دنبال اولین، بلکه در حالت کلی، به دنبال وقوع N می باشد. علاوه بر این، قادر به جستجو و تولید نتایج در هر ستون خواهد بود. بیایید آن را VLOOKUP2 بنامیم. 

ویرایشگر ویژوال بیسیک را با فشار دادن ALT+F11 یا با انتخاب از منو باز کنید سرویس – ماکرو – ویرایشگر ویژوال بیسیک (ابزار - ماکرو - ویرایشگر ویژوال بیسیک)، یک ماژول جدید وارد کنید (منو درج - ماژول) و متن این تابع را در آنجا کپی کنید:

تابع VLOOKUP2 (جدول به عنوان متغیر، SearchColumnNum به عنوان طولانی، SearchValue به عنوان متغیر، _ N به عنوان طولانی، ResultColumnNum به مدت طولانی) کم رنگ i به عنوان طولانی، iCount به مدت طولانی انتخاب Case TypeName(Table) Case "Range" برای i = 1 تا Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue سپس iCount = iCount + 1 End If If iCount = N سپس VLOOKUP2 = Table.Cells(i, ResultColumnNum) خروج برای پایان اگر بعد i مورد "Variant()" برای i = 1 به UBound (جدول) اگر جدول (i، SearchColumnNum) = SearchValue سپس iCount = iCount + 1 اگر iCount = N سپس VLOOKUP2 = Table (i، ResultColumnNum) خروج برای پایان اگر بعد i End را انتخاب کنید عملکرد پایان را انتخاب کنید  

ویرایشگر ویژوال بیسیک را ببندید و به اکسل بازگردید.

در حال حاضر از طریق درج - تابع (درج - تابع) در رده تعریف شده توسط کاربر (تعریف شده توسط کاربر) می توانید تابع VLOOKUP2 ما را پیدا کرده و از آن استفاده کنید. سینتکس تابع به صورت زیر است:

=VLOOKUP2(جدول؛ تعداد_ستون_جایی_که به دنبالش می گردیم؛ مقدار_جستجو؛ N؛ تعداد_ستون_از_به_مقدار_به دست آوردن)

اکنون محدودیت های تابع استاندارد مانعی برای ما نیست:

بهبود عملکرد VLOOKUP

PS تشکر ویژه از The_Prist برای بهبود عملکرد به طوری که می تواند در کتاب های بسته جستجو کند.

  • یافتن و جایگزینی داده ها از یک جدول به جدول دیگر با استفاده از تابع VLOOKUP
  • "VLOOKUP سمت چپ" با استفاده از توابع INDEX و MATCH

 

پاسخ دهید