غير مباشر مع vlookup في excel
إذا كنت تريد استخدام VLOOKUP وكانت البيانات التي تريد البحث عنها موجودة في أوراق مختلفة، فيمكنك دمجها مع INDIRECT. يساعدك على تحديد نطاقات متعددة في صيغة واحدة.
في المثال أعلاه، لدينا بيانات شهرية في ثلاثة جداول بيانات مختلفة. ولكن باستخدام VLOOKUP + INDIRECT واحد فقط، يمكنك الحصول على كمية جميع المنتجات لجميع الأشهر من أوراق متعددة.
=VLOOKUP($A2,INDIRECT("'"&B$1&"'!"&"A:B"),2,FALSE)
لفهم هذه الصيغة، عليك تقسيمها إلى قسمين:
في الجزء الأول، لدينا الدالة غير المباشرة، التي تقوم بإنشاء مرجع للورقة باستخدام اسم الصف 1. في المثال أدناه، نشير إلى نطاق الورقة Jan A:B.
تحتاج إلى إنشاء بنية بطريقة غير مباشرة للإشارة إلى الورقة بالاسم والنطاق حيث توجد البيانات.
=INDIRECT("'"&B$1&"'!"&"A:B")
بمجرد نقل الصيغة إلى عمود فبراير، ينتقل المرجع الموجود في INDIRECT إلى ورقة فبراير.
في الجزء الثاني، تستخدم VLOOKUP عنوان نطاق الجدول الذي يتم إرجاعه بواسطة INDIRECT وتحصل على قيمه بناءً على col_index_num المحدد في النطاق.
نقطة مهمة
في الصيغة أعلاه، تحتاج إلى البنية الصحيحة للإشارة إلى نطاق باسم الورقة. إذا قمت بإدخال البنية أدناه بطريقة غير مباشرة:
"'"&B$1&"'!"&"A:B"
سوف يعود:
"'Jan'!A:B"
طريقة بديلة
غير المباشرة هي وظيفة متقلبة. يتم تحديثه عندما يكون هناك تغيير في جدول البيانات. ولهذا السبب يمكنك التفكير في استخدام CHOOSE. على سبيل المثال، باستخدام CHOOSE، يمكنك كتابة ثلاث صيغ باستخدام VLOOKUP.
=CHOOSE(B$1,VLOOKUP($A2,Jan!$A:$B,2,0),VLOOKUP($A2,Feb!$A:$B,2,0),VLOOKUP($A2,Mar!$A:$B,2,0))
في هذه الصيغة، كما قلت، لدينا ثلاث VLOOKUPs، وعندما تستخدم CHOOSE، يمكنك أن تقرر الحصول على النتيجة من أي من VLOOKUPs
في الاختيار أشرنا إلى B1؛ في السطر 1 لديك أرقام فهرس لاستخدامها للحصول على قيمة الصيغة من SELECT.
على سبيل المثال، عندما يكون لديك 2، سيُرجع CHOOSE قيمة VLOOKUP الثانية؛ ومن الثالث هناك 3.