
إذا كنت تستخدم VLOOKUP في كل مهام البحث في Excel، فأنت لست وحدك — إذ تُعدّ من أكثر الدوال شهرةً في عالم جداول البيانات. غير أن مستخدمي Excel المتمرسين ينتقلون في الغالب إلى INDEX MATCH، وهو تركيبة من دالتين أكثر مرونةً وموثوقيةً، وقادرة على حل مشكلات يعجز عنها VLOOKUP تمامًا. تشرح هذه المقالة السبب بالتفصيل، مع صياغة حقيقية للدوال وأمثلة عملية ومتكاملة يمكنك اتباعها فورًا.
قبل دمجهما، من المفيد فهم كل دالة على حدة.
تُرجع دالة INDEX قيمة الخلية في موضع محدد داخل نطاق أو مصفوفة.
=INDEX(array, row_num, [col_num])
على سبيل المثال، تُرجع =INDEX(A1:A10, 3) القيمة الموجودة في الصف الثالث من العمود A، من الصف 1 إلى الصف 10.
تبحث دالة MATCH عن قيمة داخل نطاق وتُرجع رقم موضعها — وليس القيمة ذاتها، بل الرقم الذي يخبرك بمكانها.
=MATCH(lookup_value, lookup_array, [match_type])
0 للمطابقة التامة (الأكثر شيوعًا)، و1 للأقل من، و-1 للأكبر منعلى سبيل المثال، إذا كان النطاق A1:A5 يحتوي على {Apple, Banana, Cherry, Date, Fig}، فإن =MATCH("Cherry", A1:A5, 0) تُرجع 3 لأن Cherry هي العنصر الثالث.
تظهر القوة الحقيقية عند تداخل MATCH داخل INDEX. بدلًا من ترميز رقم الصف يدويًا، تدع MATCH تحسبه ديناميكيًا:
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
هذا يخبر Excel: "ابحث عن موضع قيمة البحث في نطاق البحث، ثم أرجع القيمة المقابلة من نطاق الإرجاع." يجب أن يكون النطاقان بالحجم نفسه ومحاذيَين في الاتجاه ذاته.
تخيّل جدول مخزون منتجات بالبنية التالية:
| رقم المنتج | اسم المنتج | الفئة | سعر الوحدة | المخزون |
|---|---|---|---|---|
| P-101 | Wireless Mouse | Electronics | $29.99 | 142 |
| P-102 | USB-C Hub | Electronics | $49.99 | 87 |
| P-103 | Desk Lamp | Office | $34.99 | 55 |
| P-104 | Notebook A5 | Stationery | $8.99 | 310 |
| P-105 | Ergonomic Chair | Furniture | $299.00 | 12 |
البيانات موجودة في A2:E6، والعناوين في الصف 1. تريد البحث عن سعر الوحدة لمنتج يُدخَل رقمه في الخلية H2.
باستخدام INDEX MATCH، ستكون الصيغة في H3 على النحو التالي:
=INDEX($D$2:$D$6, MATCH(H2, $A$2:$A$6, 0))
خطوة بخطوة:
لاحظ استخدام مراجع الخلايا المطلقة بعلامات الدولار. يضمن تثبيت النطاقات عمل الصيغة بشكل صحيح عند نسخها إلى خلايا أخرى.
إذا كنت تعرف VLOOKUP من دليل VLOOKUP الشامل، فأنت تفهم نقاط قوته. لكن لديه قيودًا معروفة يحلها INDEX MATCH بصورة أنيقة.
لا يبحث VLOOKUP إلا في العمود الأقصى يسارًا في الجدول ويُرجع قيمة تقع على يمينه. إذا كان عمود البحث يقع على يمين عمود الإرجاع، يفشل VLOOKUP. لا يعاني INDEX MATCH من هذا القيد — إذ يكون نطاق الإرجاع ونطاق البحث مستقلَّين تمامًا، فتستطيع إرجاع القيم من أي عمود، بما في ذلك الأعمدة الواقعة على يسار عمود البحث.
يستخدم VLOOKUP رقم فهرس عمود مُرمَّزًا يدويًا (مثل العمود الثالث). إذا أدرجت عمودًا أو حذفته، أصبح هذا الرقم خاطئًا ويُرجع بيانات غير صحيحة دون تحذير. لأن INDEX MATCH يشير إلى نطاقات فعلية، فلن تؤثر إضافة الأعمدة أبدًا على الصيغة.
يفحص VLOOKUP مصفوفة الجدول بأكملها في كل عملية حساب. بينما يُقيّم INDEX MATCH عمود البحث المحدد وعمود الإرجاع المحدد فحسب، مما يجعله أسرع قياسيًا في المصنفات التي تحتوي على عشرات الآلاف من الصفوف.
يمكنك تداخل دالتَي MATCH — إحداهما للصف والأخرى للعمود — لإنشاء بحث ثنائي الأبعاد لا يستطيع VLOOKUP تكراره دون صيغ مساعدة:
=INDEX(B2:E6, MATCH(H2, A2:A6, 0), MATCH(H3, B1:E1, 0))
هنا، تجد MATCH(H2, A2:A6, 0) الصف الصحيح وتجد MATCH(H3, B1:E1, 0) العمود الصحيح. غيّر أي خلية إدخال وستتكيف الصيغة فورًا. يُعدّ هذا مفيدًا بشكل خاص في لوحات معلومات المبيعات حيث تحتاج إلى استخراج مؤشرات عبر أبعاد متعددة.
عند عدم العثور على تطابق، تُرجع MATCH خطأ #N/A. قم بتغليف INDEX MATCH بالكامل داخل IFERROR لعرض رسالة مألوفة للمستخدم بدلًا من ذلك:
=IFERROR(INDEX($D$2:$D$6, MATCH(H2, $A$2:$A$6, 0)), "Product not found")
هذا مهم بشكل خاص في المصنفات المشتركة أو القوالب التي يُدخل فيها المستخدمون النهائيون قيم البحث — إذ تمنع معالجة الأخطاء بشكل نظيف الالتباس والإحباط. ادمج هذا مع التحقق من صحة البيانات على خلية الإدخال لتقييد المدخلات بقائمة صحيحة، وستحصل على أداة بحث متينة ومحمية من أخطاء المستخدم.
من أكثر سيناريوهات البحث طلبًا هو المطابقة وفق أكثر من شرط. لنفترض أنك تريد إيجاد سعر الوحدة حيث تكون الفئة "Electronics" والمخزون أقل من 100. يمكنك تحقيق ذلك باستخدام إصدار المصفوفة من INDEX MATCH.
=INDEX($D$2:$D$6, MATCH(1, ($C$2:$C$6="Electronics")*($E$2:$E$6<100), 0))
في إصدارات Excel القديمة (قبل 365)، اضغط Ctrl + Shift + Enter لإدخال هذه الصيغة كصيغة مصفوفة — سيغلفها Excel بين قوسين معقوفين {}. في Excel 365 و Excel 2021، تتعامل المصفوفات الديناميكية مع هذا تلقائيًا، لذا يكفي الضغط على Enter العادي.
طريقة عملها: ينتج كل شرط مصفوفة من قيم TRUE/FALSE (1 و0). يُنشئ ضربها معًا مصفوفة جديدة تساوي 1 فقط حيث يكون الشرطان كلاهما TRUE. تجد MATCH حينئذٍ أول 1، وتُرجع INDEX السعر المقابل.
قدّم Excel 365 دالة XLOOKUP التي تبسّط كثيرًا من مهام البحث بدالة واحدة. تتميز XLOOKUP في مهام البحث المباشرة وتدعم البحث في الجانب الأيسر أيضًا. بيد أن INDEX MATCH لا يزال ذا صلة لعدة أسباب:
يُعدّ فهم INDEX MATCH أيضًا أساسًا عند العمل على مهام أكثر تقدمًا مثل إنشاء لوحات معلومات ديناميكية في Excel، حيث تُغذّي صيغ البحث المخططات والجداول التلخيصية التي تتحدث تلقائيًا.
=INDEX(UnitPrices, MATCH(H2, ProductIDs, 0)) أسهل بكثير في التدقيق مقارنةً بمراجع الخلايا.إذا وجدت نفسك أمام متطلب بحث معقد — معايير متعددة، أو تخطيطات جداول غير اعتيادية، أو مراجع عبر أوراق عمل مختلفة — يمكنك وصف ما تحتاجه بالعربية البسيطة لـ GPTExcel والحصول على صيغة INDEX MATCH جاهزة للاستخدام في ثوانٍ، بما في ذلك المراجع المطلقة الصحيحة ومعالجة الأخطاء. يزيل ذلك التخمين ويوصلك إلى صيغة عاملة دون تجربة وخطأ يدوي.
للاطلاع على تقنيات كتابة الصيغ الأشمل المدعومة بالذكاء الاصطناعي، تغطي مقالة استخدام ChatGPT لكتابة صيغ Excel سير العمل بالتفصيل.
في الغالبية العظمى من حالات الاستخدام الاحترافي، نعم. يتعامل INDEX MATCH مع البحث في الجانب الأيسر، ولا تُفسده إضافة الأعمدة، ويدعم المطابقة ثنائية الأبعاد ومتعددة المعايير. تتميز VLOOKUP بسهولة كتابتها للبحث الأساسي في الجانب الأيمن، لكن قيودها تصبح مُؤلمة كلما ازداد تعقيد بياناتك.
فقط عند استخدام إصدار المصفوفة متعدد المعايير من الصيغة في Excel 2019 أو أقدم. تُدخَل صيغ INDEX MATCH الاعتيادية ذات المعيار الواحد بمفتاح Enter العادي في جميع إصدارات Excel. في Excel 365 و Excel 2021 مع المصفوفات الديناميكية، لا تتطلب حتى الإصدارات متعددة المعايير اختصار المصفوفة.
تُرجع MATCH دائمًا موضع أول تطابق تجده. إذا كان عمود البحث يحتوي على تكرارات وتحتاج إلى استرداد البيانات لكل تكرار، ففكّر في استخدام عمود مساعد بمفاتيح مدمجة، أو استخدم Power Query — المشروح في دليل Power Query — لإعادة تشكيل بياناتك قبل تطبيق البحث.
نعم. ما عليك سوى تضمين اسم ورقة العمل في مراجع النطاق. على سبيل المثال: =INDEX(Sheet2!$D$2:$D$100, MATCH(H2, Sheet2!$A$2:$A$100, 0)). تعمل الصيغة بالطريقة نفسها سواء كانت النطاقات في ورقة العمل ذاتها أو في ورقة مختلفة ضمن المصنف نفسه.
تعلم كيف تقوم دالة TEXT في Excel بتحويل الأرقام والتواريخ والأوقات إلى سلاسل نصية منسقة باستخدام رموز التنسيق — مع أمثلة واقعية وحالات استخدام عملية.
تعرّف على كيفية عمل دالة IF في Excel، وكيفية تداخل دوال IF المتعددة، ومتى تستخدم البدائل الحديثة مثل IFS وSWITCH لكتابة منطق أوضح وأكثر قابلية للقراءة.
أتقن استخدام SUMIF وSUMIFS في Excel لجمع البيانات بناءً على شرط واحد أو شروط متعددة، مع صيغ حقيقية وأمثلة عملية وشرح تفصيلي خطوة بخطوة.