Excel INDEX MATCH مقابل VLOOKUP - أمثلة على الصيغ

  • شارك هذا
Michael Brown

يوضح هذا البرنامج التعليمي كيفية استخدام INDEX و MATCH في Excel وكيف أنه أفضل من VLOOKUP.

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

"ما الذي أحتاجه من أجل ذلك؟" قد تتساءل. لأن VLOOKUP لديها العديد من القيود التي يمكن أن تمنعك من الحصول على النتيجة المرجوة في العديد من المواقف. من ناحية أخرى ، فإن مجموعة INDEX MATCH أكثر مرونة ولديها العديد من الميزات الرائعة التي تجعلها متفوقة على VLOOKUP في كثير من النواحي.

    Excel INDEX و MATCH - الأساسيات

    نظرًا لأن الهدف من هذا البرنامج التعليمي هو توضيح طريقة بديلة لإجراء بحث في Excel باستخدام مجموعة من وظائف INDEX و MATCH ، فلن نتعمق كثيرًا في بناء الجملة و الاستخدامات. سنغطي فقط الحد الأدنى الضروري لفهم الفكرة العامة ثم نلقي نظرة متعمقة على أمثلة الصيغ التي تكشف عن جميع مزايا استخدام INDEX MATCH بدلاً من VLOOKUP.

    دالة INDEX - بناء الجملة والاستخدام

    ترجع الدالة Excel INDEX قيمة في صفيف بناءً على أرقام الصفوف والأعمدة التي تحددها. صيغة الدالة INDEX واضحة ومباشرة:

    ( criteria1= range1) * ( criteria2= range2)، 0))}

    ملاحظة. هذه صيغة صفيف يجب إكمالها باستخدام الاختصار Ctrl + Shift + Enter.

    في الجدول النموذجي أدناه ، بافتراض أنك تريد العثور على المبلغ بناءً على معيارين ، العميل و المنتج .

    صيغة INDEX MATCH التالية تعمل بشكل جيد:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    حيث C2: C10 هو النطاق لإرجاع قيمة منه ، F1 هو criteria1 ، A2: A10 هو النطاق المراد مقارنته بالمعايير 1 ، و F2 هو المعيار 2 ، و B2: B10 هو النطاق المراد مقارنته بالمعايير 2.

    تذكر إدخال الصيغة بشكل صحيح بالضغط على Ctrl + Shift + Enter ، وسيقوم Excel تلقائيًا بإرفاق أقواس متعرجة كما هو موضح في لقطة الشاشة:

    إذا كنت تفضل عدم استخدام صيغ الصفيف في أوراق العمل الخاصة بك ، فأضف دالة INDEX أخرى إلى الصيغة وأكملها بضربة إدخال معتادة:

    كيف تعمل هذه الصيغ

    تستخدم الصيغ نفس الطريقة مثل وظيفة INDEX MATCH الأساسية التي تبحث من خلال عمود واحد. لتقييم معايير متعددة ، يمكنك إنشاء صفيفين أو أكثر من قيم TRUE و FALSE التي تمثل التطابقات وعدم التطابق لكل معيار فردي ، ثم تقوم بضرب العناصر المقابلة لهذه المصفوفات. تقوم عملية الضرب بتحويل TRUE و FALSE إلى 1 و 0 ، على التوالي ، وتنتج مصفوفة حيث تتوافق 1 مع الصفوف التي تطابق جميع المعايير.تبحث الدالة MATCH ذات قيمة البحث 1 عن أول "1" في الصفيف وتمرر موضعها إلى INDEX ، والتي تُرجع قيمة في هذا الصف من العمود المحدد.

    تعتمد الصيغة غير المصفوفة على قدرة الدالة INDEX على التعامل مع المصفوفات محليًا. تم تكوين INDEX الثاني مع 0 row_num بحيث يمرر صفيف العمود بأكمله إلى MATCH.

    هذا شرح عالي المستوى لمنطق الصيغة. للحصول على التفاصيل الكاملة ، يرجى الاطلاع على Excel INDEX MATCH بمعايير متعددة.

    Excel INDEX MATCH مع AVERAGE، MAX، MIN

    يحتوي Microsoft Excel على وظائف خاصة للعثور على الحد الأدنى والحد الأقصى والمتوسط ​​للقيمة في نطاق. ولكن ماذا لو كنت بحاجة إلى الحصول على قيمة من خلية أخرى مرتبطة بهذه القيم؟ في هذه الحالة ، استخدم الدالة MAX أو MIN أو AVERAGE مع INDEX MATCH.

    INDEX MATCH مع MAX

    للعثور على أكبر قيمة في العمود D وإرجاع قيمة من العمود C في نفس الصف ، استخدم هذه الصيغة:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH with MIN

    لتحديد أصغر قيمة في العمود D وسحب قيمة مرتبطة من العمود C ، استخدم هذه القيمة :

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    INDEX MATCH with AVERAGE

    لحساب القيمة الأقرب إلى المتوسط ​​في D2: D10 والحصول على قيمة مقابلة من العمود C ، هذه هي الصيغة لاستخدام:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    اعتمادًا على كيفية تنظيم بياناتك ، قم بتوفير إما 1 أو -1 للوسيطة الثالثة (match_type) مندالة MATCH:

    • إذا تم فرز عمود البحث (العمود D في حالتنا) تصاعديًا ، ضع 1. ستحسب الصيغة أكبر قيمة أقل من أو يساوي متوسط ​​القيمة.
    • إذا تم فرز عمود البحث تنازليًا ، أدخل -1. ستحسب الصيغة أصغر قيمة أكبر من أو تساوي متوسط ​​القيمة.
    • إذا احتوى صفيف البحث على قيمة تساوي تمامًا إلى المتوسط ​​، فأنت يمكن إدخال 0 للمطابقة التامة. لا يوجد فرز مطلوب.

    في مثالنا ، تم فرز السكان في العمود D بترتيب تنازلي ، لذلك نستخدم -1 لنوع المطابقة. نتيجة لذلك ، نحصل على "طوكيو" نظرًا لأن عدد سكانها (13189000) هو أقرب تطابق أكبر من المتوسط ​​(12269006).

    قد تكون مهتمًا بمعرفة ذلك يمكن لـ VLOOKUP إجراء مثل هذه الحسابات أيضًا ، ولكن كصيغة صفيف: VLOOKUP مع AVERAGE ، MAX ، MIN.

    استخدام INDEX MATCH مع IFNA / IFERROR

    كما لاحظت على الأرجح ، إذا كانت هناك مطابقة فهرسة لا يمكن للصيغة في Excel العثور على قيمة بحث ، فهي تنتج خطأ # N / A. إذا كنت ترغب في استبدال تدوين الخطأ القياسي بشيء أكثر أهمية ، فقم بلف صيغة INDEX MATCH في دالة IFNA. على سبيل المثال:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")

    والآن ، إذا قام شخص ما بإدخال جدول بحث غير موجود في نطاق البحث ، فستقوم الصيغة بإعلام المستخدم صراحة بأنه لا يوجد تطابقتم العثور على:

    إذا كنت ترغب في اكتشاف جميع الأخطاء ، وليس فقط # N / A ، فاستخدم الدالة IFERROR بدلاً من IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")

    يرجى الانتباه إلى أنه في كثير من المواقف قد يكون من غير الحكمة إخفاء جميع الأخطاء لأنها تنبهك إلى الأخطاء المحتملة في صيغتك.

    هذه هي كيفية استخدام INDEX و MATCH في Excel. آمل أن تكون أمثلة الصيغ الخاصة بنا مفيدة لك ، وأتطلع إلى رؤيتك على مدونتنا الأسبوع المقبل!

    تدريب المصنف للتنزيل

    أمثلة Excel INDEX MATCH (ملف .xlsx)

    INDEX (array، row_num، [column_num])

    فيما يلي شرح بسيط جدًا لكل معلمة:

    • array - نطاق من الخلايا التي تريد إرجاعها قيمة من.
    • row_num - رقم الصف في المصفوفة الذي تريد إرجاع قيمة منه. إذا تم حذفها ، فإن العمود column_num مطلوب.
    • column_num - رقم العمود في المصفوفة الذي تريد إرجاع قيمة منه. إذا تم حذفها ، فإن row_num مطلوب.

    لمزيد من المعلومات ، يرجى الاطلاع على وظيفة Excel INDEX.

    وهنا مثال على صيغة INDEX في أبسط أشكالها:

    =INDEX(A1:C10,2,3)

    تبحث الصيغة في الخلايا من A1 إلى C10 وتُرجع قيمة الخلية في الصف الثاني والعمود الثالث ، أي الخلية C2.

    سهلة جدًا ، أليس كذلك؟ ومع ذلك ، عند العمل مع البيانات الحقيقية ، لن تعرف أبدًا الصف والعمود الذي تريده ، وهذا هو المكان الذي تكون فيه وظيفة MATCH سهلة الاستخدام.

    وظيفة MATCH - بناء الجملة والاستخدام

    وظيفة Excel MATCH يبحث عن قيمة بحث في نطاق من الخلايا ويعيد الموضع النسبي لتلك القيمة في النطاق.

    بناء جملة دالة MATCH كما يلي:

    MATCH (lookup_value) ، lookup_array، [match_type])
    • lookup_value - الرقم أو القيمة النصية التي تبحث عنها.
    • lookup_array - نطاق من الخلايا يجري تم البحث.
    • match_type - تحدد ما إذا كان سيتم إرجاع مطابقة تامة أو أقرب تطابق:
      • 1 أو محذوف - يعثر على أكبر قيمة أقل من أو تساوي قيمة البحث. يتطلب فرز صفيف البحث بترتيب تصاعدي.
      • 0 - يعثر على القيمة الأولى التي تساوي تمامًا قيمة البحث. في تركيبة INDEX / MATCH ، تحتاج دائمًا إلى مطابقة تامة تقريبًا ، لذلك تقوم بتعيين الوسيطة الثالثة لدالة MATCH الخاصة بك إلى 0.
      • -1 - يعثر على أصغر قيمة أكبر من أو تساوي lookup_value. يتطلب فرز مصفوفة البحث بترتيب تنازلي.

    على سبيل المثال ، إذا كان النطاق B1: B3 يحتوي على القيم "نيويورك" ، "باريس" ، "لندن" ، تُرجع الصيغة أدناه الرقم 3 ، لأن "London" هو الإدخال الثالث في النطاق:

    =MATCH("London",B1:B3,0)

    لمزيد من المعلومات ، يرجى الاطلاع على وظيفة Excel MATCH.

    في للوهلة الأولى ، قد تبدو فائدة وظيفة MATCH مشكوك فيها. من يهتم بموضع القيمة في النطاق؟ ما نريد معرفته هو القيمة نفسها.

    دعني أذكرك أن الموضع النسبي لقيمة البحث (أي أرقام الصفوف والأعمدة) هو بالضبط ما تحتاج إلى توفيره لـ row_num و column_num وسيطات الدالة INDEX. كما تتذكر ، يمكن لـ Excel INDEX العثور على القيمة عند منعطف صف وعمود معين ، ولكن لا يمكنه تحديد الصف والعمود الذي تريده بالضبط.

    كيفية استخدام دالة INDEX MATCH في Excel

    الآن بعد أن تعرفت على الأساسيات ، أعتقد أنها كذلكبدأت بالفعل في فهم كيفية عمل MATCH و INDEX معًا. باختصار ، تجد INDEX قيمة البحث حسب أرقام الأعمدة والصفوف ، وتوفر MATCH هذه الأرقام. هذا كل شيء!

    للبحث الرأسي ، يمكنك استخدام الدالة MATCH فقط لتحديد رقم الصف وتوفير نطاق العمود مباشرة إلى INDEX:

    INDEX ( عمود لإرجاع قيمة من، MATCH ( قيمة البحث، عمود للبحث مقابل، 0))

    هل ما زلت تواجه صعوبات في معرفة ذلك؟ قد يكون من الأسهل فهمه من خلال مثال. لنفترض أن لديك قائمة بالعواصم الوطنية وسكانها:

    للعثور على عدد سكان عاصمة معينة ، قل عاصمة اليابان ، استخدم صيغة INDEX MATCH التالية:

    =INDEX(C2:C10, MATCH("Japan", A2:A10, 0))

    الآن ، دعنا نحلل ما يفعله كل مكون من هذه الصيغة بالفعل:

    • تبحث دالة MATCH عن قيمة البحث "Japan" في النطاق A2: A10 ، وإرجاع الرقم 3 ، لأن "اليابان" هي الثالثة في صفيف البحث.
    • ينتقل رقم الصف مباشرة إلى الوسيطة row_num الخاصة بـ INDEX لتطلب منه إرجاع قيمة من ذلك صف.

    لذلك ، تتحول الصيغة أعلاه إلى INDEX بسيط (C2: C ، 3) الذي ينص على البحث في الخلايا C2 إلى C10 وسحب القيمة من الخلية الثالثة في هذا النطاق ، أي C4 لأننا نبدأ العد من الصف الثاني.

    ألا تريد ترميز المدينة في الصيغة؟ أدخله في بعض الخلايا ، على سبيل المثال F1 ، قم بتزويد الخليةإشارة إلى MATCH ، وستحصل على صيغة بحث ديناميكية:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    ملاحظة مهمة! عدد الصفوف في المصفوفة يجب أن تتطابق وسيطة INDEX مع عدد الصفوف في وسيطة MATCH lookup_array ، وإلا ستنتج الصيغة نتيجة غير صحيحة.

    انتظر ، انتظر ... لماذا لا هل نحن ببساطة نستخدم صيغة Vlookup التالية؟ ما الهدف من إضاعة الوقت في محاولة اكتشاف التقلبات الغامضة في Excel MATCH INDEX؟

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    في هذه الحالة ، لا فائدة على الإطلاق :) هذا المثال البسيط هو لأغراض توضيحية فقط ، حتى تتعرف على كيفية عمل وظائف INDEX و MATCH معًا. ستوضح لك الأمثلة الأخرى التالية القوة الحقيقية لهذه المجموعة التي تتواءم بسهولة مع العديد من السيناريوهات المعقدة عندما يتعثر VLOOKUP.

    تلميحات:

    • في Excel 365 و Excel 2021 ، أنت يمكن استخدام صيغة INDEX XMATCH أكثر حداثة.
    • بالنسبة إلى جداول بيانات Google ، راجع أمثلة الصيغة مع INDEX MATCH في هذه المقالة.

    INDEX MATCH مقابل VLOOKUP

    متى عند تحديد الوظيفة التي يجب استخدامها لعمليات البحث الرأسية ، يتفق معظم معلمو Excel على أن INDEX MATCH أفضل بكثير من VLOOKUP. ومع ذلك ، لا يزال العديد من الأشخاص يبقون مع VLOOKUP ، أولاً ، لأنه أبسط ، وثانيًا ، لأنهم لا يفهمون تمامًا جميع مزايا استخدام صيغة INDEX MATCH في Excel. بدون هذا الفهم ، لا أحد على استعداد لاستثمار وقته في التعلمبناء جملة أكثر تعقيدًا.

    أدناه ، سأشير إلى المزايا الرئيسية لـ MATCH INDEX على VLOOKUP ، وعليك أن تقرر ما إذا كانت إضافة مفيدة إلى ترسانة Excel الخاصة بك.

    4 أسباب رئيسية لاستخدام INDEX MATCH بدلاً من VLOOKUP

    1. البحث من اليمين إلى اليسار. كما يعلم أي مستخدم متعلم ، لا يمكن لـ VLOOKUP النظر إلى يساره ، مما يعني أن قيمة البحث يجب أن تكون دائمًا في العمود الموجود في أقصى اليسار من الطاولة. يمكن لـ INDEX MATCH القيام بالبحث الأيسر بسهولة! يوضح المثال التالي ذلك أثناء العمل: كيفية البحث عن قيمة إلى اليسار في Excel.
    2. أدخل الأعمدة أو احذفها بأمان. تتعطل صيغ VLOOKUP أو تقدم نتائج غير صحيحة عندما يكون هناك عمود جديد تم حذفه من جدول بحث أو إضافته إليه لأن بناء جملة VLOOKUP يتطلب تحديد رقم الفهرس للعمود الذي تريد سحب البيانات منه. بطبيعة الحال ، عند إضافة أو حذف أعمدة ، يتغير رقم الفهرس.

      باستخدام INDEX MATCH ، تحدد نطاق عمود الإرجاع ، وليس رقم الفهرس. كنتيجة لذلك ، أنت حر في إدراج وإزالة أي عدد تريده من الأعمدة دون القلق بشأن تحديث كل صيغة مرتبطة.

    3. لا يوجد حد لحجم قيمة البحث. عند استخدام دالة VLOOKUP ، لا يمكن أن يتجاوز الطول الإجمالي لمعايير البحث الخاصة بك 255 حرفًا ، وإلا فسوف ينتهي بك الأمر بالحصول على #VALUE ! خطأ. لذلك ، إذا كانت مجموعة البيانات الخاصة بك تحتوي على سلاسل طويلة ، فإن INDEX MATCH هو العامل الوحيدالحل.
    4. سرعة معالجة أعلى. إذا كانت جداولك صغيرة نسبيًا ، فلن يكون هناك أي اختلاف كبير في أداء Excel. ولكن إذا كانت أوراق العمل الخاصة بك تحتوي على مئات أو آلاف الصفوف ، وبالتالي مئات أو آلاف الصيغ ، فسيعمل MATCH INDEX بشكل أسرع بكثير من VLOOKUP لأن Excel سيتعين عليه معالجة البحث وإرجاع الأعمدة فقط بدلاً من صفيف الجدول بأكمله.

      قد يكون تأثير VLOOKUP على أداء Excel ملحوظًا بشكل خاص إذا كان المصنف الخاص بك يحتوي على صيغ صفيف معقدة مثل VLOOKUP و SUM. النقطة المهمة هي أن التحقق من كل قيمة في المصفوفة يتطلب استدعاء منفصل لوظيفة VLOOKUP. لذلك ، كلما زاد عدد القيم التي يحتوي عليها الصفيف وزادت صيغ الصفيف الموجودة في المصنف ، كان أداء Excel أبطأ.

    Excel INDEX MATCH - أمثلة الصيغة

    معرفة أسباب لتعلم وظيفة MATCH INDEX ، دعنا نصل إلى الجزء الأكثر إثارة للاهتمام ونرى كيف يمكنك تطبيق المعرفة النظرية في الممارسة.

    صيغة INDEX MATCH للبحث من اليمين إلى اليسار

    كـ سبق ذكره ، لا يمكن لـ VLOOKUP النظر إلى يساره. لذلك ، ما لم تكن قيم البحث الخاصة بك هي العمود الموجود في أقصى اليسار ، فليس هناك فرصة أن تجلب لك صيغة Vlookup النتيجة التي تريدها. تعد وظيفة INDEX MATCH في Excel أكثر تنوعًا ولا تهتم حقًا بمكان وجود أعمدة البحث والإرجاع.

    في هذا المثال ،سنضيف عمود الترتيب إلى يسار جدول العينة الخاص بنا ونحاول معرفة ترتيب العاصمة الروسية ، موسكو ، من حيث عدد السكان.

    باستخدام قيمة البحث في G1 ، استخدم الصيغة التالية للبحث في C2: C10 وإرجاع قيمة مقابلة من A2: A10:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    نصيحة. إذا كنت تخطط لاستخدام صيغة INDEX MATCH لأكثر من خلية واحدة ، فتأكد من قفل كلا النطاقين بمراجع خلية مطلقة (مثل $ A $ 2: $ A $ 10 و $ C $ 2: 4C $ 10) حتى لا يتم تشويههما عند نسخ الصيغة.

    INDEX MATCH MATCH للبحث في الصفوف والأعمدة

    في الأمثلة أعلاه ، استخدمنا INDEX MATCH كبديل لـ VLOOKUP الكلاسيكي لإرجاع قيمة من عمود واحد محدد مسبقًا نطاق. ولكن ماذا لو كنت تريد البحث في عدة صفوف وأعمدة؟ بمعنى آخر ، ماذا لو كنت تريد إجراء ما يسمى بالمصفوفة أو بحث ثنائي الاتجاه ؟

    قد يبدو هذا صعبًا ، لكن الصيغة متشابهة جدًا إلى وظيفة Excel INDEX MATCH الأساسية ، مع اختلاف واحد فقط. خمن ماذا؟

    ببساطة ، استخدم وظيفتين MATCH - إحداهما للحصول على رقم صف والأخرى للحصول على رقم عمود. وأهنئ أولئك الذين خمنوا بشكل صحيح :)

    INDEX (صفيف ، تطابق ( قيمة vlookup، عمود للبحث في مقابل، 0) ، MATCH ( قيمة hlookup، صف للبحث مقابل، 0))

    والآن ، يرجى إلقاء نظرة على الجدول أدناه ودعنا نبني مطابقة مطابقة الفهرسصيغة للعثور على السكان (بالملايين) في بلد معين لسنة معينة.

    مع البلد المستهدف في G1 (قيمة البحث) والسنة المستهدفة في G2 (قيمة hlookup) ، تأخذ الصيغة هذا الشكل :

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    كيف تعمل هذه الصيغة

    كلما احتجت إلى فهم صيغة Excel معقدة ، قسّمها إلى أجزاء أصغر و انظر ما تفعله كل وظيفة فردية:

    MATCH(G1,A2:A11,0) - يبحث خلال A2: A11 عن القيمة في الخلية G1 ("الصين") ويعيد موضعها ، وهو 2.

    MATCH(G2,B1:D1,0)) - يبحث من خلال B1: D1 للحصول على موضع القيمة في الخلية G2 ("2015") ، وهو 3.

    تنتقل أرقام الصفوف والأعمدة أعلاه إلى الوسيطات المقابلة للدالة INDEX:

    INDEX(B2:D11, 2, 3)

    كنتيجة لذلك ، تحصل على قيمة عند تقاطع الصف الثاني والعمود الثالث في النطاق B2: D11 ، وهي القيمة الموجودة في الخلية D3. سهل؟ نعم!

    Excel INDEX MATCH للبحث عن معايير متعددة

    إذا كانت لديك فرصة لقراءة برنامج Excel VLOOKUP التعليمي ، فمن المحتمل أنك اختبرت بالفعل صيغة لـ Vlookup بمعايير متعددة. ومع ذلك ، هناك قيود كبيرة على هذا النهج وهو ضرورة إضافة عمود مساعد. والخبر السار هو أن دالة INDEX MATCH في Excel يمكنها البحث بمعيارين أو أكثر أيضًا ، دون تعديل أو إعادة هيكلة بيانات المصدر!

    إليك صيغة INDEX MATCH العامة بمعايير متعددة:

    {= INDEX ( return_range، MATCH (1 ،

    مايكل براون متحمس للتكنولوجيا ولديه شغف لتبسيط العمليات المعقدة باستخدام أدوات البرمجيات. مع أكثر من عشر سنوات من الخبرة في صناعة التكنولوجيا ، صقل مهاراته في Microsoft Excel و Outlook ، بالإضافة إلى جداول بيانات Google والمستندات. مدونة مايكل مكرسة لمشاركة معرفته وخبرته مع الآخرين ، وتقديم نصائح ودروس تعليمية سهلة المتابعة لتحسين الإنتاجية والكفاءة. سواء كنت محترفًا متمرسًا أو مبتدئًا ، تقدم مدونة مايكل رؤى قيمة ونصائح عملية للحصول على أقصى استفادة من أدوات البرامج الأساسية هذه.