تعيد =XMATCH(E2,A2:A6) موضع E2 داخل A2:A6: 1 للخلية الأولى، و2 للثانية. وبخلاف MATCH، تبحث عن مطابقة تامة ما لم يُطلب منها غير ذلك. تحتاج XMATCH إلى Excel 2021 أو Microsoft 365؛ وفي الإصدارات الأقدم استخدم MATCH(E2,A2:A6,0).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Look for | Position | |
| 2 | Apple | Fruit | $1.20 | Carrot | 3 | |
| 3 | Pear | Fruit | $1.50 | |||
| 4 | Carrot | Vegetable | $0.80 | |||
| 5 | Bread | Bakery | $2.40 | |||
| 6 | Milk | Dairy | $1.10 |
Carrot هو العنصر الثالث، لذا تعرض F2 القيمة 3. اكتب Kiwi فتعيد #N/A. ومثل كل بحث في الاكسل، تتجاهل حالة الأحرف.
صيغة دالة XMATCH
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
| الوسيط | القيم |
|---|---|
match_mode | 0 تامة (افتراضي)، و-1 تامة أو الأصغر التالية، و1 تامة أو الأكبر التالية، و2 مطابقة بأحرف البدل |
search_mode | 1 من العنصر الأول (افتراضي)، و-1 من العنصر الأخير، و2 بحث ثنائي تصاعدي، و-2 بحث ثنائي تنازلي |
الأنماط الثنائية أسرع في القوائم المرتبة الكبيرة جدًا وتعيد مواضع خاطئة في القوائم غير المرتبة. أما الأنماط الأخرى فتعمل على بيانات بأي ترتيب.
الأصغر التالية أو الأكبر التالية دون ترتيب
يجد match_mode بالقيمة 1 أصغر قيمة أكبر من قيمة البحث أو مساوية لها. وهذا يجيب عن "أصغر صندوق يتسع" حتى عندما تكون الأحجام مذكورة بلا ترتيب. ومع MATCH ستحتاج إلى قائمة مرتبة من الأكبر إلى الأصغر.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Box | Holds (liters) | Item (liters) | 18 | |
| 2 | S | 5 | Position | 4 | |
| 3 | XL | 50 | Box | L | |
| 4 | M | 12 | |||
| 5 | L | 25 |
الأحجام التي تتسع لـ 18 لترًا هي 25 و50، والأصغر 25، العنصر الرابع، الصندوق L. غيّر E1 إلى 12 لمطابقة تامة (M) أو إلى 40 لتحصل على XL. وmatch_mode بالقيمة -1 هو العكس: أكبر قيمة أقل من قيمة البحث أو مساوية لها، وهي قاعدة الشرائح الضريبية وفئات العمولة. ولـ XLOOKUP النمطان نفسهما وتعيد القيمة مباشرة.
البحث من العنصر الأخير
يبدأ search_mode بالقيمة -1 من الأسفل، فتعيد XMATCH موضع آخر تطابق. وما زالت المواضع تُعدّ من أعلى النطاق.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | 5 | |
| 3 | 2026-03-05 | Ana | 80 | Last date | 2026-03-20 | |
| 4 | 2026-03-09 | Ben | 45 | First position | 1 | |
| 5 | 2026-03-12 | Cara | 200 | |||
| 6 | 2026-03-20 | Ben | 60 | |||
| 7 | 2026-03-24 | Ana | 95 |
يظهر Ben في المواضع 1 و3 و5. يعيد البحث الأمامي 1 ويعيد البحث العكسي 5، أي طلبه في 2026-03-20. وقبل XMATCH، كان الوصول إلى الموضع الأخير يحتاج إلى حيلة مصفوفات: =MATCH(2,1/(B2:B7=F1)).
أحرف البدل تحتاج إلى match_mode 2
مع match_mode بالقيمة 2، تمثل * أي أحرف و? حرفًا واحدًا بالضبط. وفي الأنماط الأخرى هي أحرف عادية، بينما تعاملها MATCH كأحرف بدل كلما كان match_type يساوي 0.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Pattern | Position | |
| 2 | Green tea | *coffee | 2 | |
| 3 | Iced coffee | ?lack* | 4 | |
| 4 | Coffee beans | |||
| 5 | Black tea | |||
| 6 | Orange juice |
يطابق *coffee (أي شيء ينتهي بـ "coffee") المنتج Iced coffee في الموضع 2، ويطابق ?lack* المنتج Black tea في الموضع 4. ولا يطابق Coffee beans النمط *coffee، لأن النمط ليست في آخره *. وبدون match_mode 2 يُبحث عن النمط نفسه كنص حرفي، لذا يعيد هذا في الاكسل #N/A:
=XMATCH("*coffee", A2:A6) #N/A: no cell is literally "*coffee"
=XMATCH("*coffee", A2:A6, 2) 2
XMATCH مقابل MATCH
| MATCH | XMATCH | |
|---|---|---|
| الافتراضي عند حذف النمط | تقريبية (1)، يجب ترتيب البيانات | تامة |
| القيمة الأصغر التالية | 1، بيانات مرتبة تصاعديًا | -1، أي ترتيب |
| القيمة الأكبر التالية | -1، بيانات مرتبة تنازليًا | 1، أي ترتيب |
| أحرف البدل | مفعّلة دائمًا مع 0 | فقط مع match_mode 2 |
| آخر تطابق | لا | search_mode -1 |
| الإصدارات | الكل | Excel 2021 وMicrosoft 365 |
الإشارات معكوسة: -1 في MATCH تجد القيمة الأكبر التالية، و-1 في XMATCH تجد الأصغر التالية. عندما تحوّل MATCH(E2,A2:A6,0) إلى XMATCH، احذف 0؛ وعندما تحوّل MATCH تقريبية، اعكس الإشارة ولن يعود ترتيب البيانات مهمًا. تتناول صفحة MATCH الدالة الأقدم.
تمرين: موضع آخر طلب
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | ||
| 3 | 2026-03-05 | Ana | 80 | |||
| 4 | 2026-03-09 | Ben | 45 | |||
| 5 | 2026-03-12 | Cara | 200 | |||
| 6 | 2026-03-20 | Ben | 60 | |||
| 7 | 2026-03-24 | Ana | 95 |
دورك: في F2، أعد موضع آخر طلب للعميل الموجود في F1.
الأسئلة الشائعة
ما الفرق بين MATCH وXMATCH؟
مطابقة XMATCH الافتراضية تامة (ومطابقة MATCH الافتراضية تقريبية)، وتجد القيمة الأصغر أو الأكبر التالية دون الحاجة إلى بيانات مرتبة، ويمكنها البحث من آخر عنصر صعودًا، ولا تعامل * و? كأحرف بدل إلا إذا طلبت ذلك بقيمة match_mode 2. وتحتاج إلى Excel 2021 أو Microsoft 365.
كيف أجد آخر ظهور باستخدام XMATCH؟
اضبط search_mode، الوسيط الرابع، على -1: تعيد =XMATCH("Ben",B2:B7,0,-1) موضع آخر Ben في B2:B7. وما زالت المواضع تُعدّ من أعلى النطاق.
ماذا تعيد XMATCH إذا لم يتطابق شيء؟
الخطأ #N/A، مثل MATCH. ضعها داخل IFNA لعرض شيء آخر: =IFNA(XMATCH(E2,A2:A6),"Not in list").
هل يمكن أن تحل XMATCH محل MATCH داخل INDEX؟
نعم. تعمل =INDEX(C2:C6,XMATCH(E2,A2:A6)) مثل INDEX مع MATCH(E2,A2:A6,0)، دون رقم 0 قد تنساه. واستخدم MATCH بدلًا منها عندما يجب أن يُفتح الملف في Excel 2019 أو ما قبله.