لو انت شغال علي إكسيل بقالك فترة أكيد صادفت مرات إن دالة VLOOKUP مش كفاية أو بيقفلك عند أعمدة معينة أو تحس إن أي تعديل في الجدول يكسر المعادلة هنا بيدي دور دالتي MATCH و INDEX اللي بتمثل الثنائي الذهبي في إكسيل
دلوقتي هنتكلم عن كل حاجة بالتفصيل يعني ايه دالة MATCH - يعني ايه دالة INDEX - وازاي ندمجهم مع بعض وأمثلة عملية خطوة بخطوة
- دالة MATCH:
دالة MATCH وظيفتها الأساسية إنها تدور علي قيمة معينة جوا نطاق معين وترجعلك رقم موقعها يعني مش هترجعلك القيمة نفسها لكنها هتعرفك مكانها
- الصيغة العامة:
(القيمة_اللي_بدور_عليها, النطاق, نوع_المطابقة)MATCH=
- عناصر الدالة:
- القيمة اللي بتدور عليها:
الرقم أو الاسم اللي انت محتاجه
- النطاق:
الصف أو العمود اللي هتبحث فيه
- نوع المطابقة:
- 0 → تطابق تام
- 1 → أكبر قيمة أقل من أو يساوي القيمة المطلوبة
- -1 → أصغر قيمة أكبر من أو يساوي القيمة المطلوبة
غالبا بنستخدم 0 علشان نتأكد من التطابق التام
مثال:
عندك عمود فيه أسماء موظفين:
أحمد
محمد
علي
لو عايز تعرف محمد في أي صف موجود:
("محمد", A2:A4, 0)MATCH=
النتيجة هتكون 2 لأن محمد موجود في الصف التاني داخل النطاق
- دالة INDEX:
دالة INDEX بتديك القيمة نفسها من جدول أو نطاق معين علي أساس رقم الصف و العمود
- الصيغة العامة:
(النطاق, رقم_الصف, رقم_العمود)INDEX=
مثال:
لو عندك جدول المرتبات:
رقم الموظف الاسم المرتب
101 أحمد 5000
102 محمد 6000
103 علي 5500
ولو عايز تجيب المرتب بتاع الصف 2 والعمود 3:
النتيجة = 6000
- استخدام دالة MATCH مع دالة INDEX مع بعض:
القوة الحقيقية بتظهر لما MATCH يحددلك الصف وINDEX يجيبلك القيمة
ده حل ممتاز بدل VLOOKUP لأنه:
- يشتغل يمين وشمال
- ميتأثرش بإضافة أعمدة جديدة
- أسرع وأدق في الملفات الكبيرة
مثال عملي:
المطلوب: اكتب اسم الموظف وإكسيل يجيب المرتب تلقائي
- الخطوة1:
نجيب رقم الصف باستخدام دالة MATCH
النتيجة = 2
- الخطوة2:
نجيب المرتب باستخدام دالة INDEX
النتيجة = 6000
- الخطوة3:
ندمج الدالتين في معادلة واحدة
(C2:C4, MATCH("محمد", B2:B4, 0))INDEX=
ده معناه:
- MATCH: تدور علي محمد وتحدد الصف 2
- INDEX: تروح للصف ده في عمود المرتب وتجيب القيمة
- مثال متقدم:
جلب أكتر من معلومة:
لو عايز تجيب رقم الموظف + المرتب بناء علي الاسم تعمل INDEX لكل عمود وتستخدم نفس MATCH:
(A2:A4, MATCH("محمد", B2:B4, 0) INDEX= : رقم الموظف
(C2:C4, MATCH("محمد", B2:B4, 0))INDEX= : المرتب
بكده عندك بحث مرن لأي جدول حتي لو الأعمدة اتبدلت
- دمج دالة MATCH + INDEX مع دوال تانية:
ممكن تستخدم INDEX + MATCH مع IFERROR لتجنب الأخطاء أو مع SUM أو AVERAGE لو عايز تعمل تحليلات:
(INDEX(C2:C4, MATCH("محمد", B2:B4, 0)), "غير موجود")IFERROR=
لو الاسم مش موجود هيديك رسالة غير موجود بدل #N/A
- البحث الديناميكي باستخدام MATCH + INDEX:
واحدة من أقوى الحاجات في MATCH + INDEX إنها تسمحلك تعمل بحث ديناميكي يعني المستخدم يكتب قيمة في خلية والمعادلة ترجعله النتيجة فورا بدون ما نغير أي حاجة في الجدول
مثال عملي:
افترض معانا جدول فيه بيانات الموظفين:
رقم الموظف الاسم القسم المرتب
101 أحمد المبيعات 5000
102 محمد المحاسبة 6000
103 علي الموارد البشرية 5500
104 سارة التسويق 6200
- المطلوب:
يكتب المستخدم اسم الموظف في خلية والمعادلة ترجع الرقم - القسم - المرتب في خلايا تانية تلقائي
- الخطوة1:
خلي الخلية دي مكا إدخال الاسم
مثلا: C1 = إدخال الاسم
- الخطوة2:
رقم الموظف باستخدام INDEX + MATCH
INDEX(A2:A5, MATCH(C1, B2:B5, 0))=
- MATCH: هتحدد رقم الصف بناء علي الاسم
- INDEX: هتجيب رقم الموظف من العمود A
- الخطوة3:
القسم:
INDEX(C2:C5, MATCH(C1, B2:B5, 0))=
نفس الفكرة بس العمود مختلف
- الخطوة4:
المرتب:
INDEX(D2:D5, MATCH(C1, B2:B5, 0))=
- المميزات:
- أي اسم يتحط في C1 كل القيم تتحدث تلقائيا
- ممكن تضيف أو تحذف موظف من الجدول والمعادلات هتشتغل من غير أي تعديل
- سهل جدا لو عايز تعمل نموذج بحث تفاعلي للموظفين أو العملاء أو المنتجات
نصيحة احترافية:
لو عايز تحمي المعادلات من الخطأ لما المستخدم يحط اسم غلط استخدم IFERROR:
(INDEX(D2:D5, MATCH(C1, B2:B5, 0)), "غير موجود")IFERROR=
لو الاسم مش موجود هتظهر رسالة غير موجود بدل خطأ #N/A
- الأخطاء الشائعة وحلولها:
- خطأ #N/A:
- السبب: القيمة مش موجودة
- الحل: استخدام TRIM أو تحقق من الأخطاء الإملائية
- نطاق دالة MATCH مختلف عن دالة INDEX:
- لو عدد الصفوف مش متساوي هتحصل نتيجة غلط
الحل: خليك دايما متطابق
- نسيان نوع المطابقة:
- لو نسيت تحط 0 دالة MATCH ممكن ترجع نتيجة غير دقيقة
- الحل: دايما استخدم 0 للتطابق التام
- نصايح احترافية:
- خلي MATCH + INDEX عادة:
بدل دالة VLOOKUP خصوصا لو شغلك محاسبة - مخازن - موارد بشرية
- استخدم IFERROR مع MATCH:
لتجنب مشاكل القيم الغير موجودة
- تأكد من تطابق النطاقات:
MATCH و INDEX لازم يشيروا لنطاقات متساوية للصفوف
- تدريب عملي:
جرب تكتب جدول أي حاجة: أسماء - منتجات - أسعار وجرب MATCH + INDEX هتشوف الفرق
في النهاية:
- MATCH: بتجيب رقم الصف أو موقع القيمة
- INDEX: بتجيب القيمة نفسها من الجدول
- لما تدمجهم → تبقي معاك صيغة بحث قوية ومرنة
- مناسب لأي جدول بيانات ومش هيتأثر بتعديل الأعمدة
الدالتين دول هما الحل الاحترافي لكل مشاكل البحث في إكسيل بعد مثالين هتحس إنك بقيت Master في البحث وهنصحك تمارس عليهم شوية جداول مختلفة علشان تثبت المعلومة
- يرجى مشاركة المقال مع أشخاص آخرين لتعم الفائدة ونشرها على حساباتك الشخصية على مواقع التواصل الإجتماعي من الأيقونات أسفل المقال