Vba: كيفية استخدام index match مع معايير متعددة
يمكنك استخدام بناء الجملة الأساسي التالي لإجراء مطابقة INDEX مع معايير متعددة في VBA:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
يبحث هذا المثال تحديدًا عن القيمة الموجودة في الخلية F1 في النطاق A2:A10 والقيمة الموجودة في الخلية F2 في النطاق B2:B10 ويقوم بإرجاع القيمة المقابلة في النطاق C2:C10 في الخلية F3 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: إجراء مطابقة INDEX بمعايير متعددة باستخدام VBA
لنفترض أن لدينا مجموعة البيانات التالية في Excel تحتوي على معلومات حول لاعبي كرة السلة:
لنفترض أننا نريد العثور على اللاعب الذي يطابق اسم الفريق في الخلية F1 والموضع في الخلية F2 ونعيد الاسم في الخلية F3 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubIndexMatchMultiple ()
Range(" F3 ").Value = WorksheetFunction.Index(Range(" C2:C10 "), _
WorksheetFunction.Match(Range(" F1 "), Range(" A2:A10 "), 0) + _
WorksheetFunction.Match(Range(" F2 "), Range(" B2:B10 "), 0) - 1)
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يبحث الماكرو عن “توتنهام” في عمود الفريق و”مهاجم” في عمود المركز ويقوم بإرجاع الاسم “Eric” بشكل صحيح في الخلية F3 .
إذا قمنا بتغيير القيم في الخلايا F1 و F2 وقمنا بتشغيل الماكرو مرة أخرى، فسوف نتمكن من العثور على اسم اللاعب بناءً على القيم الجديدة.
على سبيل المثال، لنفترض أننا قمنا بتغيير اسم الفريق إلى “Mavs” والموضع إلى “Center” وقمنا بتشغيل الماكرو مرة أخرى:
يبحث الماكرو عن “Mavs” في عمود “الفريق” و”مركز” في عمود “المنصب” ويقوم بإرجاع الاسم “Chad” بشكل صحيح في الخلية F3 .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية استخدام مطابقة الفهرس
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
فبا: كيفية حساب عدد الصفوف في النطاق