جدول المحتويات
ستعلمك هذه الأمثلة كيفية معايير Vlookup المتعددة ، وإرجاع مثيل معين أو جميع التطابقات ، وإجراء Vlookup الديناميكي في أوراق متعددة ، وأكثر من ذلك.
إنه الجزء الثاني من السلسلة التي ستساعدك على الاستفادة من قوة Excel VLOOKUP. تشير الأمثلة إلى أنك تعرف كيف تعمل هذه الوظيفة. إذا لم يكن الأمر كذلك ، فمن المنطقي أن نبدأ بالاستخدامات الأساسية لـ VLOOKUP في Excel.
قبل المضي قدمًا ، دعني أذكرك بإيجاز بناء الجملة:
VLOOKUP (lookup_value، table_array، col_index_num، [range_lookup] )الآن بعد أن أصبح الجميع في نفس الصفحة ، دعنا نلقي نظرة فاحصة على أمثلة صيغة VLOOKUP المتقدمة:
كيفية البحث عن معايير متعددة
برنامج Excel تعد وظيفة VLOOKUP مفيدة حقًا عندما يتعلق الأمر بالبحث عبر قاعدة بيانات عن قيمة معينة. ومع ذلك ، فإنه يفتقر إلى ميزة مهمة - يسمح تركيبه بقيمة بحث واحدة فقط. ولكن ماذا لو كنت تريد البحث عن عدة شروط؟ هناك بعض الحلول المختلفة التي يمكنك الاختيار من بينها.
الصيغة 1. VLOOKUP بمعيارين
لنفترض أن لديك قائمة بالطلبات وتريد العثور على الكمية بناءً على معيارين ، اسم العميل و المنتج . هناك عامل معقد هو أن كل عميل طلب منتجات متعددة ، كما هو موضح في الجدول أدناه:
لن تعمل صيغة VLOOKUP المعتادة في هذه الحالة لأنها تُرجع أول ما تم العثور عليه مباراة على أساس أالمناطق:
كما في المثال السابق ، نبدأ بتحديد بعض الأسماء:
- النطاق A2: B5 في ورقة CA يسمى CA_Sales .
- النطاق A2: B5 في ورقة FL يسمى FL_Sales .
- النطاق A2: B5 في ورقة KS يسمى KS_Sales .
كما ترى ، تحتوي جميع النطاقات المسماة على جزء مشترك ( المبيعات ) وأجزاء فريدة ( CA ، FL ، KS ). يرجى التأكد من تسمية النطاقات الخاصة بك بطريقة مماثلة لأنها ضرورية للصيغة التي سنقوم ببنائها.
الصيغة 1. INDIRECT VLOOKUP لسحب البيانات ديناميكيًا من أوراق مختلفة
إذا كانت مهمتك هو استرداد البيانات من أوراق متعددة ، فإن صيغة VLOOKUP INDIRECT هي الحل الأفضل - مدمجة وسهلة الفهم.
في هذا المثال ، ننظم جدول الملخص بهذه الطريقة:
- أدخل المنتجات محل الاهتمام في A2 و A3. هذه هي قيم البحث الخاصة بنا.
- أدخل الأجزاء الفريدة للنطاقات المسماة في B1 و C1 و D1.
والآن ، نجمع الخلية التي تحتوي على الجزء الفريد (B1) مع الجزء المشترك ("_Sales") ، وقم بتغذية السلسلة الناتجة إلى INDIRECT:
INDIRECT(B$1&"_Sales")
تحول الدالة INDIRECT السلسلة إلى اسم يمكن لـ Excel فهمه ، وتضعه فيه table_array وسيطة VLOOKUP:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
تنتقل الصيغة أعلاه إلى B2 ، ثم تنسخها لأسفل وإلى اليمين.
من فضلك انتبه إلى أنه في قيمة البحث ($ A2) ،لقد أغلقنا تنسيق العمود بمرجع الخلية المطلق بحيث يظل العمود ثابتًا عند نسخ الصيغة إلى اليمين. في مرجع B $ 1 ، أغلقنا الصف لأننا نريد تغيير تنسيق العمود وتوفير جزء اسم مناسب إلى INDIRECT اعتمادًا على العمود الذي يتم نسخ الصيغة فيه:
إذا كان جدولك الرئيسي منظمًا بشكل مختلف ، وقيم البحث في صف وأجزاء فريدة من أسماء النطاقات في عمود ، فيجب عليك تأمين إحداثي الصف في قيمة البحث (B $ 1) وتنسيق العمود في أجزاء الاسم ($ A2):
=VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)
الصيغة 2. VLOOKUP و IFs المتداخلة للبحث عن أوراق متعددة
في حالة عندما يكون لديك فقط ورقتي بحث أو ثلاث أوراق بحث ، يمكنك استخدام صيغة VLOOKUP بسيطة إلى حد ما مع وظائف IF المتداخلة لتحديد الورقة الصحيحة بناءً على قيمة المفتاح في خلية معينة:
=VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,""))), 2, FALSE)
حيث $ A2 هي قيمة البحث (اسم العنصر) و B $ 1 هي قيمة المفتاح (الحالة):
في هذه الحالة ، لا تحتاج بالضرورة إلى تعريف الأسماء ويمكنك استخدام خارجي مراجع للإشارة إلى ورقة أو مصنف آخر.
لمزيد من الصيغة exa mples ، يرجى الاطلاع على How to VLOOKUP عبر أوراق متعددة في Excel.
هذه هي كيفية استخدام VLOOKUP في Excel. أشكرك على القراءة وآمل أن أراك على مدونتنا الأسبوع المقبل!
تدرب على تنزيل المصنف
أمثلة على صيغ VLOOKUP المتقدمة (.xlsxملف)
قيمة بحث فردية تحددها.للتغلب على ذلك ، يمكنك إضافة عمود مساعد وربط القيم من عمودي بحث ( العميل و المنتج ) هناك. من المهم أن يكون العمود المساعد هو العمود أقصى اليسار في صفيف الجدول لأنه المكان الذي يبحث فيه Excel VLOOKUP دائمًا عن قيمة البحث.
لذا ، أضف عمودًا إلى يسار الخاص بك الجدول وانسخ الصيغة أدناه عبر هذا العمود. سيؤدي هذا إلى ملء العمود المساعد بالقيم من العمودين B و C (يتم ربط حرف المسافة بينهما للحصول على قراءة أفضل):
=B2&" "&C2
وبعد ذلك ، استخدم صيغة VLOOKUP القياسية والمكان كلا المعيارين في الوسيطة lookup_value ، مفصولتان بمسافة:
=VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)
أو ، أدخل المعايير في خلايا منفصلة (G1 و G2 في حالتنا) وسلسلها الخلايا:
=VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)
نظرًا لأننا نريد إرجاع قيمة من العمود D ، وهو الرابع في صفيف الجدول ، فإننا نستخدم 4 لـ col_index_num . تم تعيين الوسيطة range_lookup على FALSE إلى Vlookup بمطابقة تامة. توضح لقطة الشاشة أدناه النتيجة:
في حالة وجود جدول البحث الخاص بك في ورقة أخرى ، قم بتضمين اسم الورقة في صيغة VLOOKUP الخاصة بك. على سبيل المثال:
=VLOOKUP(G1&" "&G2, Orders!A2:D11, 4, FALSE)
بدلاً من ذلك ، قم بإنشاء نطاق مسمى لجدول البحث (على سبيل المثال ، الطلبات ) لتسهيل قراءة الصيغة:
=VLOOKUP(G1&" "&G2, Orders, 4, FALSE)
لمزيد من المعلومات ، يرجى الاطلاع على كيفيةVlookup من ورقة أخرى في Excel.
ملاحظة. لكي تعمل الصيغة بشكل صحيح ، يجب أن يتم ربط القيم الموجودة في عمود المساعد بنفس الطريقة تمامًا كما في الوسيطة lookup_value . على سبيل المثال ، استخدمنا حرف مسافة لفصل المعايير في كل من العمود المساعد (B2 & amp؛ "" & amp؛ C2) وصيغة VLOOKUP (G1 & amp؛ "" & amp؛ G2).
الصيغة 2. Excel VLOOKUP بشروط متعددة
من الناحية النظرية ، يمكنك استخدام النهج أعلاه لـ Vlookup أكثر من معيارين. ومع ذلك ، هناك نوعان من المحاذير. أولاً ، تقتصر قيمة البحث على 255 حرفًا ، وثانيًا ، قد لا يسمح تصميم ورقة العمل بإضافة عمود مساعد.
لحسن الحظ ، غالبًا ما يوفر Microsoft Excel أكثر من طريقة للقيام بنفس الشيء. لمعايير Vlookup المتعددة ، يمكنك استخدام تركيبة INDEX MATCH أو دالة XLOOKUP التي تم تقديمها مؤخرًا في Office 365.
على سبيل المثال ، للبحث استنادًا إلى 3 قيم مختلفة ( التاريخ ، اسم العميل و المنتج ) ، استخدم إحدى الصيغ التالية:
=INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))
=XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)
المكان:
- G1 هي المعيار 1 (التاريخ)
- G2 هي المعيار 2 (اسم العميل)
- G3 هي المعيار 3 (المنتج)
- A2: A11 هو البحث النطاق 1 (التواريخ)
- B2: B11 هو نطاق البحث 2 (أسماء العملاء)
- C2: C11 هو نطاق البحث 3 (المنتجات)
- D2: D11 هو العائد النطاق (الكمية)
ملاحظة. في كل الإصدارات باستثناء Excel 365 و INDEXيجب إدخال MATCH كصيغة صفيف CSE بالضغط على Ctrl + Shift + Enter. في Excel 365 الذي يدعم الصفائف الديناميكية ، يعمل أيضًا كصيغة عادية.
للحصول على شرح مفصل للصيغ ، يرجى الاطلاع على:
- XLOOKUP بمعايير متعددة
- صيغة INDEX MATCH بمعايير متعددة
كيف استخدم VLOOKUP للحصول على المطابقة الثانية أو الثالثة أو التاسعة
كما تعلم بالفعل ، يمكن لبرنامج Excel VLOOKUP جلب قيمة مطابقة واحدة فقط ، وبشكل أكثر دقة ، يقوم بإرجاع أول تطابق تم العثور عليه. ولكن ماذا لو كان هناك العديد من التطابقات في مصفوفة البحث الخاصة بك وتريد الحصول على المثيل الثاني أو الثالث؟ تبدو المهمة معقدة للغاية ، ولكن الحل موجود بالفعل!
الصيغة 1. Vlookup Nth مثال
لنفترض أن لديك أسماء عملاء في عمود واحد ، والمنتجات التي اشتروها في عمود آخر ، وأنت تبحث للعثور على المنتج الثاني أو الثالث الذي اشتراه عميل معين.
تتمثل أبسط طريقة في إضافة عمود مساعد إلى يسار الجدول كما فعلنا في المثال الأول. ولكن هذه المرة ، سنقوم بملئها بأسماء العملاء وأرقام التكرار مثل " John Doe1 " ، " John Doe2 " ، إلخ.
للحصول على التكرار ، استخدم الدالة COUNTIF مع مرجع نطاق مختلط (المرجع الأول مطلق والثاني نسبي مثل $ B $ 2: B2). نظرًا لأن المرجع النسبي يتغير بناءً على موضع الخلية حيث يتم نسخ الصيغة ، في الصف 3 سيصبح $ B $ 2: B3 ، في الصف 4 -$ B $ 2: B4 وهكذا.
مترابطة مع اسم العميل (B2) ، تأخذ الصيغة هذا النموذج:
=B2&COUNTIF($B$2:B2, B2)
تذهب الصيغة أعلاه إلى A2 ، ثم تقوم بنسخه إلى أكبر عدد ممكن من الخلايا حسب الحاجة.
بعد ذلك ، أدخل اسم الهدف ورقم التكرار في خلايا منفصلة (F1 و F2) ، واستخدم الصيغة أدناه للبحث عن حدث معين:
=VLOOKUP(F1&F2, A2:C11, 3, FALSE)
الصيغة 2. التكرار الثاني لـ Vlookup
إذا كنت تبحث عن المثيل الثاني لقيمة البحث ، فيمكنك الاستغناء عن العمود المساعد. بدلاً من ذلك ، قم بإنشاء صفيف الجدول ديناميكيًا باستخدام الدالة INDIRECT مع MATCH:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)
حيث:
- E1 هي قيمة البحث
- A2: A11 هو نطاق البحث
- B11 هي آخر خلية (أسفل اليمين) من جدول البحث
يرجى ملاحظة أن تمت كتابة الصيغة أعلاه لحالة معينة حيث تبدأ خلايا البيانات في جدول البحث في الصف 2. إذا كان الجدول في مكان ما في منتصف الورقة ، فاستخدم هذه الصيغة العامة ، حيث تكون A1 هي الخلية العلوية اليسرى لجدول البحث الذي يحتوي على رأس العمود:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)
كيف تعمل هذه الصيغة
هنا هو الجزء الأساسي من الصيغة الذي ينشئ نطاق بحث ديناميكي :
INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")
وظيفة MATCH المكونة للمطابقة التامة (0 في الوسيطة الأخيرة) تقارن اسم الهدف (E1) بقائمة الأسماء (A2: A11) وتعيد موضع أول ما تم العثور عليه المباراة ، وهي 3في حالتنا هذه. سيتم استخدام هذا الرقم باعتباره إحداثي صف البداية لنطاق vlookup ، لذلك نضيف 2 إليه (+1 لاستبعاد المثيل الأول و +1 لاستبعاد الصف 1 برؤوس الأعمدة). بدلاً من ذلك ، يمكنك استخدام 1 + ROW (A1) لحساب التعديل اللازم تلقائيًا بناءً على موضع صف الرأس (A1 في حالتنا).
ونتيجة لذلك ، نحصل على السلسلة النصية التالية ، والتي INDIRECT يتحول إلى مرجع نطاق:
INDIRECT("A"&5&":B11") -> A5:B11
ينتقل هذا النطاق إلى table_array وسيطة VLOOKUP لإجباره على بدء البحث في الصف 5 ، مع استبعاد المثيل الأول من قيمة البحث:
VLOOKUP(E1, A5:B11, 2, FALSE)
كيفية Vlookup وإرجاع قيم متعددة في Excel
تم تصميم وظيفة Excel VLOOKUP لإرجاع تطابق واحد فقط. هل هناك طريقة لفلوكوب متعددة الحالات؟ نعم ، هناك ، على الرغم من أنه ليس بالأمر السهل. يتطلب هذا استخدامًا مشتركًا لعدة وظائف مثل INDEX و SMALL و ROW هي صيغة صفيف.
على سبيل المثال ، يمكن العثور أدناه على جميع تكرارات قيمة البحث F2 في نطاق البحث B2: B16 وإرجاع عدة المطابقات من العمود C:
{=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}
هناك طريقتان لإدخال الصيغة في ورقة العمل الخاصة بك:
- اكتب الصيغة في الخلية الأولى ، واضغط على Ctrl + Shift + Enter ، ثم اسحبها لأسفل إلى بضع خلايا أخرى.
- حدد عدة خلايا متجاورة في عمود واحد (F1: F11 في لقطة الشاشة أدناه) ، واكتب الصيغة واضغط على Ctrl +Shift + Enter لإكمالها.
في كلتا الحالتين ، يجب أن يكون عدد الخلايا التي تدخل فيها الصيغة مساويًا أو أكبر من الحد الأقصى لعدد المطابقات الممكنة.
للحصول على شرح مفصل لمنطق الصيغة والمزيد من الأمثلة ، يرجى الاطلاع على كيفية VLOOKUP لقيم متعددة في Excel.
كيفية البحث في الصفوف والأعمدة (بحث ثنائي الاتجاه)
البحث ثنائي الاتجاه (الملقب بحث المصفوفة أو البحث ثنائي الأبعاد ) هي كلمة رائعة للبحث عن قيمة عند تقاطع صف وعمود معين. هناك عدة طرق مختلفة لإجراء بحث ثنائي الأبعاد في Excel ، ولكن نظرًا لأن هذا البرنامج التعليمي ينصب على وظيفة VLOOKUP ، فسنستخدمه بشكل طبيعي.
في هذا المثال ، سنأخذ ما يلي جدول مع المبيعات الشهرية وعمل صيغة VLOOKUP لاسترداد رقم المبيعات لعنصر معين في شهر معين.
مع أسماء العناصر في A2: A9 ، أسماء الأشهر في B1: F1 ، العنصر الهدف في I1 والشهر المستهدف في I2 ، تسير الصيغة على النحو التالي:
=VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)
كيف تعمل هذه الصيغة
جوهر الصيغة هي دالة VLOOKUP القياسية التي تبحث عن مطابقة تامة لقيمة البحث في I1. ولكن نظرًا لأننا لا نعرف في أي عمود بالضبط تكون المبيعات لشهر معين ، لا يمكننا توفير رقم العمود مباشرة إلى الوسيطة col_index_num . للعثور على هذا العمود ، نستخدم المطابقة التاليةدالة:
MATCH(I2, A1:F1, 0)
تُترجم إلى اللغة الإنجليزية ، تقول الصيغة: ابحث عن قيمة I2 في A1: F1 وأعد موضعها النسبي في المصفوفة. من خلال توفير 0 للوسيطة الثالثة ، فإنك تقوم بإرشاد MATCH للعثور على القيمة المساوية تمامًا لقيمة البحث (يشبه استخدام FALSE لـ range_lookup وسيطة VLOOKUP).
منذ Mar في العمود الرابع في صفيف البحث ، ترجع الدالة MATCH 4 ، والتي تنتقل مباشرة إلى الوسيطة col_index_num وسيطة VLOOKUP:
VLOOKUP(I1, A2:F9, 4, FALSE)
من فضلك انتبه إلى أنه على الرغم من أن أسماء الأشهر تبدأ في العمود B ، فإننا نستخدم A1: I1 لصفيف البحث. يتم ذلك من أجل أن يتوافق الرقم الذي يتم إرجاعه بواسطة MATCH مع موضع العمود في table_array من VLOOKUP.
لمعرفة المزيد من الطرق لإجراء بحث عن المصفوفة في Excel ، يرجى الاطلاع على INDEX MATCH MATCH وغيرها من الصيغ للبحث ثنائي الأبعاد.
كيفية إجراء Vlookup متعدد في Excel (متداخل Vlookup)
في بعض الأحيان قد لا يحتوي الجدول الرئيسي وجدول البحث على عمود واحد في شائع ، مما يمنعك من عمل فلكوب بين طاولتين. ومع ذلك ، يوجد جدول آخر لا يحتوي على المعلومات التي تبحث عنها ولكن يحتوي على عمود واحد مشترك مع الجدول الرئيسي وعمود آخر مشترك مع جدول البحث.
في الصورة أدناه توضح الموقف:
الهدف هو نسخ الأسعار إلى الجدول الرئيسي بناءً على معرفات العناصر . تكمن المشكلة في أن الجدول الذي يحتوي على الأسعار لا يحتوي على معرفات العناصر ، مما يعني أنه سيتعين علينا إجراء بحثين في صيغة واحدة.
من أجل الراحة ، دعنا ننشئ زوجين من النطاقات المسماة أولاً:
- يسمى جدول البحث 1 المنتجات (D3: E10)
- يسمى جدول البحث 2 الأسعار ( G3: H10 )
يمكن أن تكون الجداول في نفس أوراق العمل أو أوراق عمل مختلفة.
والآن ، سنقوم بما يسمى Vlookup المزدوج ، المعروف أيضًا باسم Vlookup .
أولاً ، قم بعمل صيغة VLOOKUP للعثور على اسم المنتج في جدول البحث 1 (المسمى المنتجات ) استنادًا إلى العنصر معرف (A3):
=VLOOKUP(A3, Products, 2, FALSE)
بعد ذلك ، ضع الصيغة أعلاه في lookup_value وسيطة دالة VLOOKUP أخرى لسحب الأسعار من جدول البحث 2 (المسمى الأسعار ) استنادًا إلى اسم المنتج الذي تم إرجاعه بواسطة VLOOKUP المتداخلة:
=VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)
توضح لقطة الشاشة أدناه صيغة Vlookup المتداخلة لدينا قيد التنفيذ:
كيفية البحث عن أوراق متعددة ديناميكيًا
أحيانًا ، y قد يكون لديك بيانات بنفس التنسيق مقسمة على عدة أوراق عمل. وهدفك هو سحب البيانات من ورقة معينة اعتمادًا على قيمة المفتاح في خلية معينة.
قد يكون هذا أسهل للفهم من مثال. لنفترض أن لديك عددًا قليلاً من تقارير المبيعات الإقليمية بالتنسيق نفسه ، وتتطلع إلى الحصول على أرقام المبيعات لمنتج معين بشكل معين.