Menu
flag Ar iconالعربيةdown icon

البحث بعدة شروط في الاكسل: XLOOKUP وINDEX MATCH

تعيد =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7) القيمة من الصف الذي يطابق فيه العمود A الخلية E2 ويطابق فيه العمود B الخلية F2. ونسخة INDEX MATCH، وعمود مساعد لـ VLOOKUP، وFILTER لكل التطابقات.

كل ورقة في هذه الصفحة تفاعلية: غيّر رقمًا أو صيغة وسيُعاد الحساب.

تعيد =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7) السعر من الصف الذي يكون فيه المنتج E2 والحجم F2. تتحقق كل مقارنة من كل صف، ويعطي ضربهما 1 فقط حيث يصح الاثنان، وتبحث XLOOKUP عن ذلك الرقم 1. تحتاج إلى Excel 2021 أو Microsoft 365؛ ونسخة INDEX MATCH أدناه تعمل في كل إصدار.

السعر حسب المنتج والحجم
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50TeaLarge$3.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

يلتقي Tea وLarge في الصف 5، لذا تعيد G2 القيمة $3.00. اختر Juice وSmall: $3.00 مرة أخرى، من صف آخر. أضف وسيطًا رابعًا للحالة التي لا يطابق فيها أي صف الشرطين: =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7,"No such item").

كيف تعمل الشروط المضروبة

تقارن A2:A7=E2 كل منتج بالخلية E2 وتعيد ست قيم TRUE أو FALSE. وضرب قائمتين كهاتين يحوّل TRUE إلى 1 وFALSE إلى 0، ويكون الصف 1 فقط إذا كان 1 في القائمتين. يعرض العمود D هذه القائمة، ممتدة من صيغة واحدة.

المصفوفة التي تبحث فيها XLOOKUP
D2
ABCDEFG
1ProductSizePriceBoth matchProductSize
2CoffeeSmall$2.500TeaLarge
3CoffeeLarge$3.500
4TeaSmall$2.000
5TeaLarge$3.001
6JuiceSmall$3.000
7JuiceLarge$4.000
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

D5 وحدها قيمتها 1. غيّر F2 أو G2 فيتحرك الرقم 1. كل شرط إضافي هو *(range=value) آخر، ولا يلزم أن تكون الشروط مساواة: تضيف *(C2:C7<3) شرط "السعر أقل من 3". يجب أن تغطي كل النطاقات الصفوف نفسها (A2:A7 وB2:B7 وC2:C7): إذا كان نطاق الإرجاع بحجم مختلف عن الشروط، تعيد XLOOKUP الخطأ #VALUE!.

INDEX MATCH بعدة شروط

في Excel 2019 وما قبله، يمكن أن تبحث MATCH في المصفوفة نفسها عن الرقم 1، وتعيد INDEX السعر من ذلك الموضع.

شرطان مع INDEX وMATCH
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50CoffeeLarge$3.50
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

Coffee وLarge في الموضع 2 من المصفوفة، وتعيد INDEX القيمة $3.50. في Excel 2019 وما قبله هذه صيغة مصفوفة: اضغط Ctrl+Shift+Enter (Cmd+Shift+Enter على Mac) بدلًا من Enter، فيعرضها الاكسل داخل أقواس معقوصة. والضغط على Enter وحده هناك يعيد عادة #N/A أو #VALUE!. وفي Excel 365 يكفي Enter. وصيغة الشرط الواحد موجودة في صفحة INDEX وMATCH.

اجمع الشروط في مفتاح واحد

الطريقة الأخرى هي تحويل شرطين إلى شرط واحد بجمعهما. تحتاج VLOOKUP إلى القيم المجمّعة في عمود مساعد في بداية الجدول (توضح صفحة VLOOKUP هذه النسخة). أما XLOOKUP فتستطيع جمع النطاقات داخل الصيغة، فلا حاجة إلى عمود مساعد.

اجمع المنتج والحجم في مفتاح واحد
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50JuiceLarge$4.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

تبني A2:A7&"|"&B2:B7 ستة مفاتيح مثل Juice|Large، وتجد XLOOKUP المفتاح Juice|Large بينها: $4.00. ضع فاصلًا بين الأجزاء. بدونه يجتمع "AB" و"C" إلى "ABC" نفسها التي يعطيها "A" و"BC"، وقد يعيد البحث الصف الخطأ.

إذا كانت القيمة التي تريدها رقمًا وتظهر كل تركيبة مرة واحدة، تعطي SUMIFS الإجابة نفسها دون أي مصفوفة: =SUMIFS(C2:C7,A2:A7,E2,B2:B7,F2). وتعيد 0 بدلًا من الخطأ عندما لا يتطابق شيء، وهذا قد يخفي خطأً إملائيًا.

إرجاع كل التطابقات بالدالة FILTER

تعيد XLOOKUP وINDEX MATCH أول صف مطابق. وعندما تتطابق عدة صفوف وتريدها كلها، استخدم FILTER بالشروط نفسها.

كل طلبات Phone في North
F2
ABCDEFG
1RegionProductQuarterSalesMatches
2NorthLaptopQ1120Q1210
3NorthPhoneQ1210Q2225
4SouthLaptopQ195Q3240
5NorthPhoneQ2225
6SouthPhoneQ2180
7NorthLaptopQ2135
8NorthPhoneQ3240
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

ثلاثة صفوف هي North وPhone، لذا تمد F2 أرباعها ومبيعاتها في F2:G4. غيّر A3 إلى South فتتقلص القائمة إلى صفين. وإذا لم يتطابق أي صف، تعيد FILTER الخطأ #CALC!؛ ووسيط ثالث مثل "None" يعرض نصًا بدلًا منه. وتجد خيارات أخرى في صفحة FILTER.

تمرين: ثلاثة شروط

المبيعات حسب المنطقة والمنتج والربع
G4
ABCDEFG
1RegionProductQuarterSalesRegionSouth
2NorthLaptopQ1120ProductLaptop
3NorthLaptopQ2135QuarterQ2
4NorthPhoneQ1210Sales
5SouthLaptopQ195
6SouthPhoneQ2180
7SouthLaptopQ2110
8NorthPhoneQ2225
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

دورك: أعد في G4 مبيعات المنطقة الموجودة في G1، والمنتج الموجود في G2، والربع الموجود في G3.

الأسئلة الشائعة

كيف أستخدم XLOOKUP بعدة شروط؟

اضرب مقارنة واحدة لكل شرط وابحث عن 1: =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7). تعطي كل مقارنة TRUE أو FALSE لكل صف، ويكون حاصل الضرب 1 فقط حيث تكون كلها TRUE، وتعيد XLOOKUP أول صف كهذا.

كيف أستخدم INDEX MATCH بشرطين؟

استخدم الشروط المضروبة نفسها داخل MATCH: =INDEX(C2:C7,MATCH(1,(A2:A7=E2)*(B2:B7=F2),0)). في Excel 2019 وما قبله، أكّدها بالضغط على Ctrl+Shift+Enter (Cmd+Shift+Enter على Mac).

هل يمكن أن تستخدم VLOOKUP شرطين؟

ليس مباشرة. أضف عمودًا مساعدًا في بداية الجدول يجمع القيمتين، مثل =A2&"|"&B2، ثم ابحث عن القيمة المجمّعة: =VLOOKUP(E2&"|"&F2,helper_table,col,FALSE).

هل يمكن أن تحل SUMIFS محل البحث بشرطين؟

نعم، عندما تكون القيمة رقمًا وتظهر كل تركيبة مرة واحدة: =SUMIFS(C2:C7,A2:A7,E2,B2:B7,F2). تعيد 0 بدلًا من #N/A عندما لا يتطابق أي صف، وتجمع القيم إذا ظهرت تركيبة مرتين.

كيف أبحث بشروط OR؟

اجمع الشروط بدلًا من ضربها: تكون (A2:A7="Tea")+(A2:A7="Juice") قيمتها 1 أو أكثر حيث يصح أحدهما. ابحث عن قيمة أكبر من 0، مثلًا بالصيغة =XLOOKUP(TRUE,((A2:A7="Tea")+(A2:A7="Juice"))>0,C2:C7).

رسم توضيحي للغات البرمجة في Coddy

تعلّم البرمجة مع Coddy

ابدأ الآن