لدينا قائمة الطلبات مع أرقام وأسماء البضائع. أود ، على سبيل المثال ، أن أسحب من الجدول حسب رقم الطلب جميع السلع المضمنة فيه. أكثر أو أقل من هذا القبيل:
ميزة رائعة فلوكوب (فلوكوب) في مثل هذه الحالة ، سيساعد ذلك جزئيًا فقط ، لأنه قادر على استخراج البيانات فقط من خلال أول تطابق يتم العثور عليه ، أي سيعطينا فقط تفاح. للبحث عن كافة العناصر واستخراجها من الجدول ، من الأفضل استخدام صيغة صفيف. مثل هذه:
=INDEX(2 دولار أمريكي: 16 مليار دولار أمريكي;الأقل(IF($ E $ 2=أكسنومك: أكسنومك;خط(ب 2: ب 16) -1 ؛ »») ؛خط() -5))
يجب إدخالها على النحو التالي:
- حدد الخلايا التي يجب عرض النتائج فيها (في مثالنا ، هذا هو النطاق D6: D20)
- أدخل (انسخ الصيغة في الخلية الأولى) من النطاق
- صحافة CTRL + تغير + أدخل
وحدة الطرح في جزء STRING (B2: B16) -1 يتم بسبب رأس الجدول. للسبب نفسه ، للتعويض عن التحول في النطاق الناتج بالنسبة إلى النطاق الأصلي ، يتم طرح الرقم خمسة في الجزء STRING () - 5
لإخفاء ال # NUM! سيظهر الخطأ في الخلايا الفارغة في النطاق الناتج D6: D20 ، يمكنك استخدام وظائف التحقق من الأخطاء IF و EOSH ، واستبدال صيغتنا بأخرى أكثر تعقيدًا:
= إذا (EOSH (ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))؛ »» ؛ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))
في Excel 2007 ، ظهرت وظيفة IFERROR أكثر ملاءمة - تتيح لك حل المشكلة بشكل أكثر إحكاما:
= IFERROR (ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5))؛ »»)
PS
في الإصدار الإنجليزي من Excel ، ستبدو هذه الوظائف كما يلي:
=INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))
=IF(ISERR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))),»»,INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)))
=IFERROR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)),»»)
- استخدام وظيفة VLOOKUP للبحث عن البيانات في جدول
- نسخة محسنة من وظيفة VLOOKUP2 يمكنها البحث في أي عمود وليس القيمة الأولى فقط
- وظائف VLOOKUP2 و VLOOKUP3 من الوظيفة الإضافية PLEX
- ما هي صيغ الصفيف ولماذا يتم استخدامها؟