جدول المحتويات
عندما يكون لدينا كمية كبيرة من البيانات ، يكون من الصعب أحيانًا استخراج أي بيانات محددة من مجموعة البيانات. جنبًا إلى جنب مع وظائف Excel INDEX و MATCH يمكن استرداد أي نوع من البيانات حتى في مجموعة البيانات الضخمة. يعد تنفيذ VBA أكثر الطرق فعالية وأسرع وأمانًا لتشغيل أي عملية في Excel. في هذه المقالة ، سنعرض لك 3 طرق مختلفة حول كيفية إجراء INDEX MATCH بناءً على معايير متعددة في Excel باستخدام ماكرو VBA .
تنزيل المصنف
يمكنك تنزيل مصنف Excel التجريبي المجاني من هنا.
VBA INDEX MATCH استنادًا إلى معايير متعددة. xlsm
3 طرق باستخدام VBA INDEX MATCH استنادًا إلى معايير متعددة في Excel
في الأقسام التالية ، سنوضح لك كيفية إجراء INDEX MATCH استنادًا إلى معايير متعددة لنطاق ، لتحديد معين و لجدول في Excel مع VBA .
أعلاه لدينا مجموعة البيانات التي ستتبعها هذه المقالة. لدينا اسم الطالب ، معرف الطالب ، و علامات الاختبار لكل طالب في مجموعة البيانات. سنستخرج نتيجة معينة مقيمة في عمود واحد بناءً على الشروط من العمودين الآخرين.
المعايير - 1: تضمين VBA مع INDEX MATCH للبحث متعدد الأبعاد (ثنائي) في Excel
انظر إلى الصورة التالية. لقد قمنا بتخزين اسم طالب معين " Edge" في خلية G4 ؛ والعمود الذي سنبحث فيه عن النتيجة في ، علامات الاختبار ، مخزنة في خلية G5 . سنبحث في العمود علامات الاختبار ونخزن العلامات التي حصلت عليها " Edge" في خلية G6 .
ينتج عن خطوات البحث مصفوفة ثنائية الأبعاد مع INDEX و MATCH في Excel مع VBA مذكورة أدناه.
الخطوات:
- في البداية ، اضغط على Alt + F11 على لوحة المفاتيح أو انتقل إلى علامة التبويب المطور - & GT. Visual Basic لفتح محرر Visual Basic .
- التالي ، في نافذة التعليمات البرمجية المنبثقة ، من شريط القائمة ، انقر فوق إدراج - & GT. الوحدة النمطية .
- ثم ، انسخ الكود التالي و الصقه في الكود نافذة.
3814
كودك جاهز الآن للتشغيل.
- الآن ، اضغط F5 على لوحة المفاتيح أو من شريط القائمة حدد تشغيل - & GT. تشغيل Sub / UserForm . يمكنك أيضًا النقر فوق رمز التشغيل الصغير في شريط القائمة الفرعية لتشغيل الماكرو.
بعد تنفيذ التعليمات البرمجية ، انظر إلى الصورة المتحركة أدناه لمعرفة النتيجة. الاختبار ، 67 ، يتم استرداده في الخلية G7 .
شرح كود VBA
3031
تحديد متغير ورقة العمل.
8878
قم بتخزين اسم ورقة العمل. اسم الورقة لدينا هو "ثنائي الأبعاد" ، يجب عليك تقديمهالاسم وفقًا لجدول البيانات الخاص بك.
5694
هذا الجزء من التعليمات البرمجية يحدد النطاق C5: D14 كنطاق البحث. ثم ابحث عن المطابقة المخزنة في الخلية G4 في النطاق B5: B14 وابحث عن المطابقة المخزنة في الخلية G5 في النطاق C4: D4 ومرر النتيجة إلى الخلية G6 .
اقرأ المزيد: كيفية استخدام INDEX MATCH مع معايير متعددة للنطاق الزمني
المعايير - 2: تطبيق ماكرو للبحث عن قيمة المباراة بواسطة INDEX باستخدام وظيفة محددة بواسطة المستخدم (UDF)
يمكنك استخراج القيم المتطابقة من مجموعة بيانات باستخدام وظيفة معرفة من قبل المستخدم (UDF) . من الصورة التالية ، ما سنفعله هو أننا سنمرر معرف الطالب و علامات الاختبار لطالب معين وستقوم الوظيفة برمي الاسم لهذا الطالب المحدد.
دعونا نرى كيفية تحقيق ذلك لـ اسم الطالب "Finn" مع VBA .
الخطوات:
- كما هو موضح من قبل ، افتح محرر Visual Basic من علامة التبويب Developer و أدخل a Module في نافذة التعليمات البرمجية.
- ثم ، في إطار التعليمات البرمجية ، انسخ الكود التالي والصق في نافذة التعليمات البرمجية.
2736
- لا تقم بتشغيل هذا الرمز ، احفظ .
- الآن ، ارجع إلى ورقة العمل ذات الأهمية. اختر أي خلية تريد تخزين النتيجة. في حالتنا ، الخلية F5 .
- في تلك الخلية ، اكتب UDF أنتأنشأت للتو في الكود ( MatchByIndex ) و تمرير معرف الطالب وعلامات الاختبار للطالب المحدد داخل أقواس الوظيفة.
As نحاول استخراج الاسم " Finn" من معرف (105) و Marks (84) ، لذلك في حالتنا تصبح الصيغة ،
=MatchByIndex(105,84)
- ثم اضغط Enter .
انظر إلى الصورة التالية.
في الخلية F5 ، نجحنا في استرداد الاسم " Finn" ببساطة عن طريق تمرير المعرف و العلامات داخل الوظيفة التي أنشأناها في كود VBA .
شرح كود VBA
3483
إنشاء وظيفة جديدة وتمرير المتغيرات بداخلها. يمكنك تحديد أي اسم للوظيفة.
1748
يبدأ صفنا من رقم الصف 4. يجب توفير رقم الصف الذي تبدأ منه مجموعة البيانات.
3574
تحديد المتغيرات.
7608
أولاً ، قم بتعريف ورقة العمل للعمل معها. اسم جدولنا هو "UDF" ، يجب عليك تقديم الاسم وفقًا لجدول البيانات الخاص بك. ثم ابدأ البحث في النطاق C: D من الصف الأول الذي حددناه إلى الصف الأخير.
9713
ابدأ التكرار من الصف الأول إلى الصف الأخير. إذا كانت القيمة الأولى التي سنمررها داخل الدالة تقع داخل العمود C وإذا كانت القيمة الثانية التي سنمررها داخل الوظيفة تقع داخل العمود D ، فسوف تعود التطابق من العمود B . خلاف ذلك ، قم بإنهاء الوظيفة ، وإنهاء جميع العبارات ، وانتقل إلى السطر التالي.
4126
إذا لم يتم الوفاء بالشرط السابق أثناء التنفيذ ، فسيتم إرجاع رسالة "لم يتم العثور على البيانات" وستظهر الرسالة سيترك الكود الوظيفة.
اقرأ المزيد: INDEX-MATCH مع معايير متعددة للنص الجزئي في Excel (طريقتان)
المعايير - 3: تطبيق VBA لإرجاع قيمة MATCH من جدول ببيانات متعددة في Excel
في هذا القسم ، سنتعلم كيفية إرجاع قيمة مطابقة بواسطة الفهارس من جدول في MsgBox في VBA Excel.
دعونا نرى كيفية استخراج العلامات من الجدول الموضح في مجموعة البيانات ( T الاسم القابل: TableMatch ) لطالب معين من خلال توفير الاسم والمعرف داخل الكود. بالنسبة إلى حالتنا ، سيكون الاسم والمعرف Finn و 105 على التوالي.
خطوات :
- أولاً ، افتح محرر Visual Basic من علامة التبويب Developer و أدخل a Module في نافذة الكود.
- ثم انسخ الكود التالي و الصقه في نافذة الكود.
5576
الكود الخاص بك الآن جاهز للتشغيل.
- لاحقًا ، قم بتشغيل هذا الرمز وانظر إلى الصورة التالية لمعرفة ما حدث نتيجة لذلك.
كما ترون من الصورة أعلاه ، هناك Microsoft Excel pop-يظهر لك مربع الرسالة العلامات: 84 من المعرف: 105 و الاسم: الفنلندي التي قدمناها داخل الكود.
شرح كود VBA
1116
تحديد المتغيرات.
4363
تعيين اسم الورقة واسم الجدول داخل المتغيرات.
1576
تخزين قيم البحث وأعمدة البحث المراد البحث عنها.
1813
يمسح هذا الجزء من التعليمات البرمجية من البداية إلى نهاية الرمز السفلي وإذا وجد تطابق المعرف المحدد والاسم في أعمدة البحث ثم تخزين النتيجة وإغلاق جميع البيانات. أيضًا ، اخرج من التكرار وانتقل إلى الجزء التالي من الكود.
1855
يلقي النتيجة في MsgBox.
اقرأ المزيد: البحث والعودة قيم متعددة متسلسلة في خلية واحدة في Excel
الخاتمة
في الختام ، أوضحت لك هذه المقالة 3 طرق مختلفة حول كيفية تنفيذ INDEX MATCH على معايير متعددة في Excel مع VBA الماكرو . آمل أن يكون هذا المقال مفيدًا جدًا لك. لا تتردد في طرح أي أسئلة بخصوص الموضوع.