تطابق مؤشر VBA | كيفية استخدام دالة مطابقة الفهرس في VBA (أمثلة)

تطابق الفهرس في VBA

وظيفة INDEX & MATCH في تركيبة VBA هي البديل لوظيفة VLOOKUP في Excel. في VBA ، لا نتمتع برفاهية استخدام وظيفة INDEX & MATCH مباشرة لأن هاتين الوظيفتين ليستا جزءًا من وظائف VBA المدمجة. ومع ذلك ، لا يزال بإمكاننا استخدامها كجزء من فئة دالة ورقة العمل.

كيفية استخدام مطابقة الفهرس في VBA؟ (خطوة بخطوة)

يمكنك تنزيل قالب Excel لمطابقة فهرس VBA من هنا - قالب Excel لمطابقة فهرس VBA

على سبيل المثال ، انظر إلى البيانات أدناه.

في البيانات أعلاه ، قيمة البحث هي اسم القسم ، وبناءً على اسم القسم هذا نحتاج إلى استخراج مبلغ الراتب.

لكن المشكلة هنا هي أن عمود النتيجة موجود في العمود الأول وقيمة البحث بعد ذلك عمود النتيجة. في هذه الحالة ، لا يمكن لـ VLOOKUP جلب مبلغ الراتب لأن VLOOKUP يعمل فقط من اليمين إلى اليسار وليس من اليسار إلى اليمين.

في هذه الحالات ، نحتاج إلى استخدام الصيغة المركبة لوظيفة VBA INDEX & MATCH. لنقم بمهمة إيجاد مبلغ الراتب لكل قسم في كود VBA.

الخطوة 1: ابدأ روتين الشمس.

الخطوة 2: قم بتعريف متغير VBA Integer.

رمز:

 INDEX_MATCH_Example1 الفرعي () خافت k كـ صحيح End Sub 

الخطوة 3: افتح الآن For Next Loop في VBA.

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 التالي k End Sub 

الخطوة 4: داخل حلقة VBA قم بتنفيذ الصيغة. في العمود الخامس ، نحتاج إلى تطبيق الصيغة ، لذا فإن الكود هو CELLS (k، 5). القيمة =

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k ، 5) .Value = Next k End Sub 

الخطوة 5: في تلك الخلية ، نحتاج إلى تطبيق صيغة VBA INDEX & MATCH. كما قلت ، نحتاج إلى استخدام هذه الوظائف كوظيفة ورقة العمل في فئة vba ، لذا افتح فئة وظيفة ورقة العمل.

رمز:

INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k ، 5). القيمة = وظيفة ورقة العمل. التالي k End Sub

الخطوة 6: بعد إدخال فئة دالة ورقة العمل ، يمكننا رؤية جميع وظائف ورقة العمل المتاحة ، لذا حدد وظيفة INDEX.

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k ، 5). القيمة = دالة ورقة العمل. فهرس (التالي k End Sub 

الخطوة 7: أثناء استخدام دالة ورقة العمل في VBA ، يجب أن تكون متأكدًا تمامًا من وسيطات الصيغة. الوسيطة الأولى هي المصفوفة ، أي العمود الذي نحتاج إلى النتيجة منه ، في هذه الحالة ، نحتاج إلى النتيجة من A2 إلى A5.

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k، 5) .Value = WorksheetFunction.Index (Range ("A2: A5")، Next k End Sub 

الخطوة 8: التالي هو رقم الصف الذي نحتاج إلى النتيجة منه. كما رأينا في المثال السابق ، لا يمكننا توفير رقم الصف يدويًا في كل مرة. لذا استخدم وظيفة MATCH.

من أجل استخدام وظيفة MATCH مرة أخرى ، نحتاج إلى فتح فئة دالة ورقة العمل.

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k، 5) .Value = WorksheetFunction.Index (Range ("A2: A5")، WorksheetFunction.Match (Next k End Sub 

الخطوة 9: الوسيطة الأولى لدوال MATCH هي قيمة LOOKUP ، وهنا قيمة البحث لدينا هي أسماء الأقسام ، وهي موجودة في الخلايا (2 ، 4).

نظرًا لأنه في كل مرة يجب تغيير رقم الصف ، يمكننا توفير المتغير "k" بدلاً من رقم الصف اليدوي 2. الخلايا (k ، 4).

رمز:

 Sub INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k، 5) .Value = WorksheetFunction.Index (Range ("A2: A5")، WorksheetFunction.Match (Cells (k، 5) .Value، Next ك End Sub 

الخطوة 10: بعد ذلك ، نحتاج إلى ذكر نطاق قيمة القسم ، أي النطاق ("B2: B5").

رمز:

 Sub INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k، 5) .Value = WorksheetFunction.Index (Range ("A2: A5")، WorksheetFunction.Match (Cells (k، 5) .Value، Range ("B2: B5")، 

التالي k

End Sub

الخطوة 11: بعد ذلك ضع الحجة على 0 لأننا نحتاج إلى تطابق تام ونغلق الأقواس.

رمز:

 INDEX_MATCH_Example1 () خافت k كعدد صحيح لـ k = 2 إلى 5 خلايا (k، 5) .Value = WorksheetFunction.Index (Range ("A2: A5")، WorksheetFunction.Match (Cells (k، 4) .Value، Range ("B2: B5")، 0)) 

التالي k

End Sub

حسنًا ، انتهينا من جزء الترميز. دعونا نقوم بتشغيل الكود للحصول على نتيجة في العمود 5.

لذلك ، حصلنا على النتيجة.

يمكننا استخدام هذه الصيغة كبديل لدالة VLOOKUP.