تحسين وظيفة VLOOKUP

المحتويات

كيف تحزم المظلة بشكل صحيح؟

المنفعة. الطبعة 2 ، المنقحة.

لنفترض أن لدينا جدول الطلبات التالي:

تحسين وظيفة VLOOKUP

نحتاج أن نعرف ، على سبيل المثال ، ما هو مبلغ طلب إيفانوف الثالث أو متى نفذ بتروف صفقته الثانية. يمكن لوظيفة VLOOKUP المدمجة البحث فقط عن التكرار الأول لاسم العائلة في الجدول ولن تساعدنا. أسئلة مثل "من كان مدير الأمر رقم 10256؟" سيبقى أيضًا بدون إجابة ، tk. VLOOKUP المدمج غير قادر على إرجاع القيم من الأعمدة إلى يسار البحث.

تم حل كلتا هاتين المشكلتين بضربة واحدة - فلنكتب وظيفتنا الخاصة التي لن تبحث فقط عن الأولى ، ولكن في الحالة العامة ، للظهور Nth. علاوة على ذلك ، سيكون قادرًا على البحث وإعطاء النتائج في أي أعمدة. دعنا نسميها ، على سبيل المثال ، VLOOKUP2. 

افتح محرر Visual Basic بالضغط على ALT + F11 أو بالاختيار من القائمة الخدمة - ماكرو - محرر فيجوال بيسك (أدوات - ماكرو - محرر فيجوال بيسك)، أدخل وحدة جديدة (القائمة إدراج - وحدة) وانسخ نص هذه الوظيفة هناك:

الدالة VLOOKUP2 (جدول كمتغير ، SearchColumnNum طويل ، SearchValue كمتغير ، _ N طالما ، ResultColumnNum As Long) Dim i طويل ، iCount As Long حدد حالة TypeName (جدول) الحالة "Range" لـ i = 1 إلى جدول. الصفوف .Count If Table.Cells (i، SearchColumnNum) = SearchValue ثم iCount = iCount + 1 End If If iCount = N ثم VLOOKUP2 = Table.Cells (i، ResultColumnNum) اخرج من أجل End If Next i Case "Variant ()" لـ i = 1 إلى UBound (جدول) إذا كان الجدول (i ، SearchColumnNum) = SearchValue ثم iCount = iCount + 1 إذا كان iCount = N ثم VLOOKUP2 = الجدول (i ، ResultColumnNum) اخرج من أجل النهاية إذا التالي i حدد وظيفة النهاية  

أغلق محرر Visual Basic وارجع إلى Excel.

الآن من خلال إدراج - وظيفة (إدراج - وظيفة) في الفئة تعريف المستخدم (تعريف المستخدم) يمكنك العثور على وظيفة VLOOKUP2 الخاصة بنا واستخدامها. بناء جملة الدالة كما يلي:

= VLOOKUP2 (جدول ؛ number_of_column_where_we نبحث عنه ؛ lookup_value ؛ N ؛ number_of_column_from_to_get_value)

الآن قيود الوظيفة القياسية ليست عائقًا أمامنا:

تحسين وظيفة VLOOKUP

PS شكر خاص لـ The_Prist لتحسين الوظيفة بحيث يمكنها البحث في الكتب المغلقة.

  • البحث عن البيانات واستبدالها من جدول إلى آخر باستخدام وظيفة VLOOKUP
  • “Left VLOOKUP” باستخدام وظائف INDEX و MATCH

 

اترك تعليق