جدول المحتويات
سأقوم اليوم بإجراء تحليل مقارن لـ وظائف XLOOKUP مقابل وظائف INDEX-MATCH في Excel . في الإصدارات السابقة من Excel ، كنا نستخدم وظائف HLOOKUP و VLOOKUP و INDEX-MATCH للبحث عن قيمة محددة في نطاق من الخلايا. ومع ذلك ، مع ظهور Office 365 ، زودنا Excel بوظيفة جديدة وديناميكية تسمى وظيفة XLOOKUP لإجراء عملية مماثلة بشكل أكثر تعقيدًا. في هذه المقالة ، سأحاول مقارنة الوظائف المستخدمة على نطاق واسع ، XLOOKUP و INDEX-MATCH .
تنزيل Practice Workbook
احصل على نموذج الملف هذا لفهم أفضل.
XLOOKUP مقابل INDEX-MATCH Functions.xlsx
مقدمة إلى دالة XLOOKUP
تُستخدم الدالة XLOOKUP للعثور على قيمة محددة داخل نطاق من الخلايا أو صفيف. بعد ذلك ، تقوم بإرجاع المباراة الأولى المقابلة. كما يعرض أقرب تطابق تقريبي عندما لا يكون هناك تطابق تام.
بناء الجملة:
= XLOOKUP (lookup_value، lookup_array، return_array، [if_not_found] ، [match_mode]، [search_mode])
الوسيطات:
- Lookup_value : إنها القيمة التي نحن البحث في عمود محدد من النطاق.
- Lookup_array : إنها المصفوفة التي نبحث فيها عن lookup_value . يمكن أن يكون كلا من صف والمباراة الأولى أو الأخيرة. للحصول على القيمة الأولى المطابقة ، اضبط وسيطة نوع البحث على 1 . وللحصول على القيمة الأخيرة المطابقة ، اضبط الوسيطة search_type على -1 . لكن في INDEX-MATCH ليس لديك خيار. ستحصل فقط على القيمة الأولى التي تطابق.
- للحصول على الطالب الأول الذي حصل على 100 ، يمكنك استخدام هذه الصيغة XLOOKUP في الخلية G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)
- إلى جانبها ، ستحصل على آخر طالب مع 100 باستخدام هذه الصيغة XLOOKUP .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)
- على العكس من ذلك ، ستحصل فقط على القيمة الأولى التي تتطابق مع هذه الصيغة INDEX-MATCH .
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)
7. XLOOKUP و INDEX-MATCH في حالة قيم البحث المتعددة
في هذا المثال ، سوف نوضح XLOOKUP مقابل INDEX-MATCH في حالة وجود قيم بحث متعددة. هناك تشابه بين الوظيفتين في هذا الصدد. كلاهما يسمح بعدة lookup_values (Array Formula).
- بالنسبة للدالة XLOOKUP ، ستعمل الصيغة التالية.
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)
- ثم ، بالنسبة إلى INDEX-MATCH ، ستعمل الوظيفة التالية أيضًا.
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)
مزايا & amp؛ عيوب وظيفة XLOOKUP
هناك مزايا وعيوب معينة لاستخدام وظيفة XLOOKUP . دعونا نراهم بإيجاز.
المزايا
- إعداد قيمة افتراضية لعدم وجود حالات مطابقة.
- يمكن البحث عن التطابقات التقريبية دون فرز lookup_array .
- حق الوصول للبحث من الخلية الأولى والخلية الأخيرة في lookup_array .
العيوب
- يعمل بشكل أبطأ من INDEX-MATCH وظيفة .
- متوفرة في Office 365 فقط.
Advantages & amp؛ amp؛ عيوب وظائف INDEX-MATCH
حصلت وظائف INDEX-MATCH أيضًا على بعض الإيجابيات والسلبيات التالية.
المزايا
- يعمل أسرع من وظيفة XLOOKUP .
- متوفرة في الإصدارات القديمة Excel .
العيوب
- لا يمكن معالجة الأخطاء عند عدم العثور على تطابق.
- يحتاج إلى فرز lookup_array للمطابقات التقريبية.
- إرجاع القيمة الأولى فقط عندما تتطابق القيم المتعددة مع lookup_value .
الاستنتاج
أخيرًا ، وصلنا إلى نهاية مقالنا الطويل. حاولنا هنا إنشاء تحليل مقارن للوظائف XLOOKUP مقابل وظائف INDEX-MATCH في Excel. دعنا نعرف اقتراحاتك الثاقبة في هذا الشأن. اتبع ExcelWIKI لمزيد من الدروس.
العمود.الوسائط الاختيارية:
- If_not_found : إنها القيمة التي سيتم إرجاعها في حالة عدم احتواء lookup_array على lookup_value.
- Match_mode : هو رقم يشير إلى نوع تطابق lookup_value الذي تريده. هذا جدل إختياري. يمكن أن يحتوي على أربع قيم.
- عندما يكون 0 ، XLOOKUP سيبحث عن تطابق تام (افتراضي).
- عندما يكون 1 ، سيبحث XLOOKUP أولاً عن تطابق تام. إذا لم يتم العثور على تطابق تام ، فسوف يتطابق مع القيمة الأصغر التالية.
- عندما تكون -1 ، سيبحث XLOOKUP أولاً عن التطابق التام. إذا لم يتم العثور على تطابق تام ، فسوف يتطابق مع القيمة الأكبر التالية.
- عندما يكون 2 ، سيبحث XLOOKUP أولاً عن تطابق تقريبي باستخدام أحرف البدل ( ينطبق على قيم البحث عن السلسلة فقط).
- Search_mode : هو رقم يشير إلى نوع عملية البحث التي أجريت على lookup_array. هذا أيضًا اختياري. يمكن أن يحتوي أيضًا على أربع قيم:
- إذا كان 1 ، XLOOKUP سيبحث من أعلى إلى أسفل في lookup_array (افتراضي).
- عندما يكون -1 ، XLOOKUP سيبحث من أسفل إلى أعلى في
- إذا كان 2 ، XLOOKUP ستجريبحث ثنائي بترتيب تصاعدي.
- عندما يكون -2 ، XLOOKUP سيجري بحثًا ثنائيًا بترتيب تنازلي.
مقدمة إلى وظائف INDEX-MATCH
تُستخدم مجموعة وظائف INDEX-MATCH لجلب قيمة من موقع معين ومطابقتها مع نطاق المصدر.
بناء الجملة:
= INDEX (صفيف ، MATCH (lookup_value ، lookup_array ، match_type) ، no_of_column)
الوسيطات:
لوظيفة INDEX:
- Array : هو نطاق من الخلايا التي نريد استخراج قيمة منها.
- MATCH (lookup_value، lookup_array، match_type): إنه رقم صف النطاق حيث يتطابق lookup_value مع قيمة محددة في lookup_array .
- No_of_column: إنه رقم عمود المصفوفة الذي نريد أن نعيد منه قيمة تقابل lookup_value .
لوظيفة MATCH:
- Lookup_value: إنها القيمة التي نبحث عنها.
- Looku p_array: إنها المصفوفة التي نبحث فيها عن lookup_value . يمكن أن يكون صفًا وعمودًا.
- Match_type: إنه عدد صحيح يشير إلى نوع التطابق الذي نبحث عنه. هذا اختياري.
- عندما يكون -1 ، MATCH سيبحث أولاً عن تطابق تام. في حالة عدم العثور على تطابق تام ، سيبحث عن القيمة الأكبر التالية (افتراضي)(عكس XLOOKUP ).
لكن الشرط هو أنه يجب فرز lookup_array بترتيب تصاعدي. وإلا فسيظهر خطأ.
- عندما يكون 1 ، تطابق سيبحث أيضًا أولاً عن تطابق تام. في حالة عدم العثور على تطابق تام ، سيبحث عن القيمة الأصغر التالية (المقابلة لـ XLOOKUP ).
لكن الشرط هو أن lookup_array يجب فرزها بترتيب تنازلي هذه المرة. وإلا فسيظهر خطأ.
- عندما يكون 0 ، MATCH سيبحث عن تطابق تام.
قراءة المزيد: كيفية تحديد بيانات معينة في Excel (6 طرق)
7 مقارنات بين استخدامات XLOOKUP ووظائف INDEX-MATCH
الآن قمنا بتقسيم الصيغة ، دعونا نناقش بعض أوجه التشابه والاختلاف بين الدالتين. قبل الذهاب إلى المناقشات الرئيسية ، أعرض النقاط الرئيسية في جدول من أجل راحتك.
نقطة المناقشة | التشابه / الاختلاف | الشرح |
Column lookup_array | التشابه | يدعم كلاهما عمودًا باعتباره lookup_array. |
البحث عن الصفوف_الصفيف | التشابه | كلاهما يدعم صفًا مثل lookup_array. |
لا يوجد تطابق لقيمة lookup_value | عدم التشابه | يحتوي XLOOKUP على خيار الإعداد الافتراضي لعدم تطابقابحث عن القيمة. ولكن لا تحتوي INDEX-MATCH. |
تطابق تقريبي | تشابه جزئي | يمكن لـ XLOOKUP اكتشاف الأصغر التالي أو القيمة الأكبر التالية في حالة عدم وجود تطابق تام. يمكن لـ INDEX-MATCH أيضًا القيام بذلك ، ولكن يجب فرز lookup_array بترتيب تصاعدي أو تنازلي. |
مطابقة أحرف البدل | التشابه | كلاهما يدعم مطابقة أحرف البدل. |
مطابقة القيم المتعددة | التشابه الجزئي | يمكن لـ XLOOKUP اكتشاف إما القيمة الأولى أو الأخيرة عندما تتطابق قيم متعددة. ولكن يمكن لـ INDEX-MATCH إرجاع القيمة الأولى المطابقة فقط. |
صيغة المصفوفة | التشابه | كلاهما يدعم المصفوفة الصيغة. |
1. XLOOKUP و INDEX-MATCH لقيمة البحث في العمود
هناك تشابه بين الوظيفتين في هذا الجانب. بالنسبة لـ XLOOKUP و INDEX-MATCH ، يمكن أن يكون lookup_array عمودًا لكلتا الوظيفتين. نحن هنا نبحث عن العلامات الدقيقة في الفيزياء لاسم الطالب في C ell F5 ، Jennifer Marlo . أردنا البحث من أعلى إلى أسفل في العمود Student Name وإرجاع " Not Found " في حالة عدم العثور على تطابق.
- لـ XLOOKUP ، طبق الصيغة في الخلية G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)
- بالنسبة إلى INDEX-MATCH ، استخدم هذه الصيغة في خلية G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3)
اقرأ المزيد: كيفية مطابقة معايير متعددة من مصفوفات مختلفة في Excel
2. XLOOKUP و INDEX-MATCH لقيمة البحث في الصف
يوجد أيضًا تشابه بين الوظيفتين في هذا الجانب . بالنسبة إلى XLOOKUP و INDEX-MATCH ، يمكن أيضًا أن يكون lookup_array صفًا لكلتا الوظيفتين. للتوضيح ، لدينا مجموعة بيانات جديدة مع معرفات ، الأسماء ، و العلامات في الفيزياء و الدرجات .
دعنا نفكر للحظة أن هذه مجموعة بيانات واسعة جدًا ، ولا نعرف ما هو رقم العمود الدرجة . بعد ذلك ، لمعرفة درجة طالب معين ، يتعين علينا استخدام صف العنوان (B4: E4) باعتباره lookup_array والكلمة " Grade " على أنها lookup_value . يمكننا تحقيق ذلك باستخدام كل من XLOOKUP و INDEX-MATCH .
- لمعرفة درجة الطالب الثالث ، ستكون الصيغة XLOOKUP مثل هذه في خلية G5 .
=XLOOKUP("Grade",B4:E4,B7:E7,"Not Found",0,1)
- لهذه الحالة ، ستكون الصيغة INDEX-MATCH هي:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))
3. XLOOKUP و INDEX-MATCH عند عدم وجود تطابق
تختلف الوظيفتان في هذا الجانب. إذا كانت lookup_value لا تتطابق مع أي قيمة في lookup_array ، فيمكنك تعيين قيمة ثابتة ليتم إرجاعها في XLOOKUP . للقيام بذلك ، عليك ضبط ذلكالقيمة في الوسيطة if_not_found . من ناحية أخرى ، لا يوجد مثل هذا الخيار في INDEX-MATCH . سيعود خطأ. يجب عليك استخدام الدالة IFERROR بالخارج لمعالجة الخطأ. في مجموعة البيانات المقدمة ، سنكتشف اسم الطالب بالمعرف 100 .
- لهذا ، استخدم الصيغة التالية XLOOKUP في الخلية G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)
- من ناحية أخرى ، قم بتطبيق هذا صيغة INDEX-MATCH .
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)
- لأنها تعرض خطأ ، يجب استخدام وظيفة IFERROR بالخارج لمعالجة هذا الخطأ.
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2),"Not Found")
قراءات مماثلة
- Excel INDEX MATCH لإرجاع قيم متعددة في خلية واحدة
- معادلة Excel INDEX-MATCH لإرجاع قيم متعددة أفقيًا
- كيفية استخدام صيغة INDEX-MATCH في Excel لإنشاء نتائج متعددة
- [تم الإصلاح!] INDEX MATCH لا يُرجع القيمة الصحيحة في Excel (5 أسباب)
- كيفية استخدام INDEX MATCH بدلاً من VLOOKUP في Excel (3 طرق)
4. XLOOKUP و INDEX-MATCH في حالة المطابقات التقريبية
يوجد تشابه جزئي بين الوظيفتين في هذا الجانب. في الدالة XLOOKUP ، إذا لم تتطابق قيمة lookup_value مع أي قيمة في lookup_array ، فيمكنك تعديل الصيغة لإرجاع القيمة الأصغر التالية أو القيمة الأكبر التالية . ضع الحجة match_type إلى -1 إذا كنت تريد القيمة الأصغر التالية وقم بتعيينها على 1 إذا كنت تريد القيمة الأكبر التالية.
على سبيل المثال ، سنكتشف الطالب بعلامة 50 أو العلامة الأكبر التالية.
- للعثور على القيمة ، قم بتطبيق صيغة XLOOKUP .
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)
- كما ترى ، لا يوجد طالب بعلامة 50 . هذا هو السبب في أنه يظهر على الفور بعد 50 ، 51 بواسطة ديزموند هايز .
هناك نفس الخيار في صيغة INDEX-MATCH . لكن العيب هو أنه يجب عليك فرز lookup_array بترتيب تنازلي إذا كنت تريد القيمة الأكبر التالية. خلاف ذلك ، فإنه سيعيد خطأ. وللحصول على القيمة الأصغر التالية ، يجب عليك الفرز بترتيب تصاعدي.
- أولاً ، أدخل هذه الصيغة في خلية G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)
- نتيجة لذلك ، سترى أن النتيجة تعرض خطأ # N / A .
- لذلك ، قم بفرز نطاق الخلايا D5: D16 بترتيب تصاعدي وستحصل على القيمة الصحيحة.
ملاحظة خاصة:في وظيفة XLOOKUP، يعمل -1للقيمة الأصغر التالية ، ولكن في INDEX-MATCH، -1يعمل مع القيمة الأكبر التالية. وبالمثل في الدالة XLOOKUP، يعمل 1 للقيمة الأكبر التالية ، ولكن في INDEX-MATCH ، يعمل 1للقيمة الأصغر التالية.
اقرأ المزيد: كيفية الاستخدامINDEX و Match for Partial Match (طريقتان)
5. XLOOKUP و INDEX-MATCH في حالة مطابقة أحرف البدل
هناك تشابه بين الوظيفتين في هذا الجانب. يدعم كل من XLOOKUP و INDEX-MATCH Wildcards . هنا ، سوف نتعرف على أي طالب يحمل الاسم الثاني " مارلو ". دعنا نتبع الخطوات أدناه لرؤية مقارنة XLOOKUP مقابل INDEX-MATCH .
- أولاً ، قم بتطبيق هذه الصيغة XLOOKUP في خلية G5 للحصول على الإخراج.
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)
ملاحظة:لاستخدام أحرف البدل في XLOOKUP، يجب عليك تعيين الوسيطة match_typeعلى 2 . خلاف ذلك ، لن يعمل.
- من ناحية أخرى ، ستكون صيغة INDEX-MATCH لإنجاز نفس المهمة على هذا النحو.
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)
قراءة المزيد: INDEX MATCH معايير متعددة مع Wildcard في Excel (دليل كامل )
6. XLOOKUP و INDEX-MATCH عند قيمة بحث تطابق قيم متعددة
يوضح هذا المثال XLOOKUP مقابل INDEX-MATCH عندما قيم متعددة تطابق قيمة البحث. هناك أيضًا تشابه جزئي بين الوظيفتين في هذا الصدد. يقوم كل من XLOOKUP و INDEX-MATCH بإرجاع قيمة واحدة فقط في حالة تطابق القيم المتعددة في lookup_array مع lookup_value . ولكن في وظيفة XLOOKUP ، يمكنك تعديل البحث للحصول على أي منهما