تطابق مؤشر 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.