كيفية عمل Vlookup الحساسة لحالة الأحرف في Excel - أمثلة الصيغة

  • شارك هذا
Michael Brown

يشرح البرنامج التعليمي كيفية جعل Excel VLOOKUP حساسًا لحالة الأحرف ، ويوضح بعض الصيغ الأخرى التي تميز حالة النص ، ويشير إلى نقاط القوة والقيود لكل وظيفة.

أعتقد كل يعرف مستخدم Excel الوظيفة التي تقوم بإجراء بحث عمودي في Excel. حسنًا ، إنه VLOOKUP. ومع ذلك ، يدرك عدد قليل جدًا من الأشخاص أن VLOOKUP في Excel غير حساس لحالة الأحرف ، مما يعني أنه يتعامل مع الأحرف الصغيرة والكبيرة على أنها نفس الأحرف.

إليك مثال سريع يوضح عدم قدرة VLOOKUP على تمييز حالة النص. افترض إذا كان لديك "فاتورة" في الخلية A2 و "فاتورة" في A4. ستلتقط الصيغة أدناه "bill" لأنها تأتي أولاً في صفيف البحث وتعيد قيمة مطابقة من B2.

=VLOOKUP("Bill", A2:B4, 2, FALSE)

المزيد في هذا سأوضح لك طريقة لجعل VLOOKUP حساسًا لحالة الأحرف. سنستكشف أيضًا بعض الوظائف الأخرى التي يمكنها إجراء تطابق حساس لحالة الأحرف في Excel.

    صيغة VLOOKUP الحساسة لحالة الأحرف

    كما هو مذكور أعلاه ، صيغة VLOOKUP المعتادة لا يتعرف على حالة الرسالة. ومع ذلك ، هناك طريقة لجعل Excel VLOOKUP حساسًا لحالة الأحرف ، كما هو موضح في المثال أدناه.

    لنفترض أن لديك معرفات العناصر في العمود A وتريد سحب سعر العنصر والتعليق عليه من العمودين B و C. المشكلة هي أن المعرفات تشتمل على أحرف صغيرة وكبيرة. على سبيل المثال ، تختلف القيم الموجودة في A4 (001Tvci3u) و A5 (001Tvci3U) فقط فيالحرف الأخير ، "u" و "U" ، على التوالي.

    عند البحث عن "001Tvci3 U " ، تنتج صيغة VLOOKUP القياسية 90 دولارًا مقترنة بـ "001Tvci3 u "لأنه يأتي قبل" 001Tvci3 U "في صفيف البحث. ولكن هذا ليس ما تريده ، أليس كذلك؟

    =VLOOKUP(F2, A2:C7, 2, FALSE)

    لإجراء بحث حساس لحالة الأحرف في Excel ، نقوم بدمج VLOOKUP و CHOOSE و EXACT الدالات:

    VLOOKUP (TRUE، CHOOSE ({1،2}، EXACT ( lookup_value، lookup_array return_array)، 2، 0)

    هذه الصيغة العامة تعمل بشكل مثالي في جميع المواقف. يمكنك حتى البحث عن من اليمين إلى اليسار ، وهو شيء لا تستطيع صيغة VLOOKUP العادية القيام به. مجد لـ Pouriya لاقتراح هذا الحل البسيط والأنيق!

    في حالتنا ، تسير الصيغ الحقيقية على النحو التالي.

    لسحب السعر في F3:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)

    لجلب التعليق F4:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)

    ملاحظة. في جميع إصدارات Excel بخلاف Excel 365 ، يعمل هذا فقط كصيغة صفيف ، لذا تذكر أن تضغط على Ctrl + Shift + Enter لإكمالها بشكل صحيح. في Excel 365 ، نظرًا لدعم المصفوفات الديناميكية ، تعمل أيضًا كصيغة عادية.

    كيف تعمل هذه الصيغة:

    الجزء الأساسي الذي يقوم بالخدعة هو صيغة CHOOSE مع التداخل بالضبط:

    CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)

    هنا ، تقارن الدالة EXACT القيمة الموجودة في F2 مقابل كل قيمة في A2: A7 وتُرجع TRUE إذا كانت متطابقة تمامًا بما في ذلك حالة الأحرف ،خطأ بخلاف ذلك:

    {FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}

    بالنسبة إلى وسيطة index_num لـ CHOOSE ، نستخدم ثابت الصفيف {1،2}. كنتيجة لذلك ، تدمج الوظيفة القيم المنطقية من المصفوفة أعلاه والقيم من C2: C7 في مصفوفة ثنائية الأبعاد مثل:

    {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}

    تأخذها الدالة VLOOKUP من هناك والبحث عن قيمة البحث (وهي TRUE) في العمود الأول من المصفوفة ثنائية الأبعاد (ممثلة بالقيم المنطقية) وإرجاع تطابق من العمود الثاني ، وهو السعر الذي نبحث عنه:

    VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)

    صيغة XLOOKUP الحساسة لحالة الأحرف

    يمكن لمشتركي Microsoft 365 إجراء بحث حساس لحالة الأحرف في Excel باستخدام صيغة أبسط. كما يمكنك التخمين ، أنا أتحدث عن خليفة أكثر قوة لـ VLOOKUP - وظيفة XLOOKUP.

    نظرًا لأن XLOOKUP يعمل على مصفوفات البحث والعودة بشكل منفصل ، فنحن لا نحتاج إلى خدعة المصفوفة ثنائية الأبعاد من السابق مثال. ببساطة ، استخدم EXACT للوسيطة lookup_array :

    XLOOKUP (TRUE، EXACT ( lookup_value ، lookup_array return_array ، " غير موجود ")

    الوسيطة الأخيرة (" غير موجود ") اختيارية. إنه يحدد فقط القيمة التي يجب إرجاعها إذا لم يتم العثور على تطابق. إذا حذفته ، فسيتم إرجاع الخطأ القياسي # N / A في حالة عدم عثور الصيغة على أي شيء.

    بالنسبة لجدول العينة ، هذه هي صيغ XLOOKUP الحساسة لحالة الأحرف التي يجب استخدامها.

    للحصول على السعر في F3:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")

    لاستخراج ملفالتعليق F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")

    كيف تعمل هذه الصيغة:

    كما في المثال السابق ، إرجاع EXACT مصفوفة من قيم TRUE و FALSE ، حيث تمثل TRUE التطابقات الحساسة لحالة الأحرف. يبحث XLOOKUP في الصفيف أعلاه عن القيمة TRUE ويعيد تطابقًا من return_array . يرجى ملاحظة أنه في حالة وجود قيمتين أو أكثر من نفس القيم بالضبط في عمود البحث (بما في ذلك حالة الأحرف) ، فستقوم الصيغة بإرجاع أول تطابق تم العثور عليه.

    قيود XLOOKUP : متاح فقط في Excel 365 و Excel 2021.

    SUMPRODUCT - بحث حساس لحالة الأحرف لإرجاع الأرقام المتطابقة

    كما تفهم من العنوان ، فإن SUMPRODUCT هي وظيفة Excel أخرى يمكنها إجراء بحث حساس لحالة الأحرف ، ولكن يمكنه إرجاع القيم الرقمية فقط. إذا لم تكن هذه هي حالتك ، فانتقل إلى مثال INDEX MATCH الذي يوفر حلاً لجميع أنواع البيانات.

    كما تعلم على الأرجح ، يضاعف SUMPRODUCT في Excel المكونات في المصفوفات المحددة ويعيد مجموع المنتجات. نظرًا لأننا نريد بحثًا حساسًا لحالة الأحرف ، فإننا نستخدم الدالة EXACT للحصول على المصفوفة الأولى:

    =SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))

    للأسف ، لا يمكن للدالة SUMPRODUCT إرجاع تطابق نصي حيث لا يمكن مضاعفة القيم النصية. في هذه الحالة ، ستحصل على خطأ #VALUE! خطأ كما في الخلية F4 في لقطة الشاشة أدناه:

    كيف تعمل هذه الصيغة:

    كما في مثال VLOOKUP ، بالضبط الشيكات الوظيفيةالقيمة في F2 مقابل جميع القيم الموجودة في A2: A7 وإرجاع TRUE للمطابقات الحساسة لحالة الأحرف ، وإلا FALSE:

    SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))

    في معظم الصيغ ، يقيّم Excel القيمة TRUE إلى 1 و FALSE إلى 0 . لذلك ، عندما يضرب SUMPRODUCT عناصر المصفوفتين في نفس المواضع ، تصبح جميع العناصر غير المتطابقة (FALSE) أصفارًا:

    SUMPRODUCT({0;0;0;54;0;0})

    ونتيجة لذلك ، تُرجع الصيغة رقمًا من العمود B الذي يتوافق مع التطابق الدقيق لحالة الأحرف في العمود A.

    حد SUMPRODUCT : يمكنه إرجاع القيم الرقمية فقط.

    INDEX MATCH - بحث حساس لحالة الأحرف لـ جميع أنواع البيانات

    أخيرًا ، نحن قريبون من الحصول على صيغة بحث خالية من القيود حساسة لحالة الأحرف تعمل في جميع إصدارات Excel وعلى جميع مجموعات البيانات.

    يأتي هذا المثال أخيرًا ليس فقط بسبب يتم حفظ الأفضل للأخير ، ولكن أيضًا لأن المعرفة التي اكتسبتها في الأمثلة السابقة قد تساعدك على فهم صيغة MATCH INDEX الحساسة لحالة الأحرف بشكل أفضل.

    غالبًا ما يتم استخدام مزيج من وظائف INDEX و MATCH في السابق cel كبديل أكثر مرونة وتنوعًا لـ VLOOKUP. تقوم المقالة التالية بعمل جيد (نأمل :) تشرح كيف تعمل هاتان الوظيفتان معًا - باستخدام INDEX MATCH بدلاً من VLOOKUP.

    هنا ، سأذكرك فقط بالنقاط الرئيسية:

    • تبحث الدالة MATCH عن قيمة البحث في صفيف البحث المحدد وتعيد موضعها النسبي.
    • النسبيينتقل موضع قيمة البحث مباشرة إلى الوسيطة row_num للدالة INDEX التي تطلب منها إرجاع قيمة من هذا الصف.

    لكي تتعرف الصيغة على حالة النص ، أنت فقط تحتاج إلى إضافة وظيفة أخرى إلى مجموعة INDEX MATCH الكلاسيكية. من الواضح أنك بحاجة إلى وظيفة EXACT مرة أخرى:

    INDEX ( return_array ، MATCH (TRUE ، EXACT ( lookup_value ، lookup_array ) ، 0))

    الصيغة الحقيقية في F3 هي:

    =INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    في F4 ، نستخدم هذه الصيغة:

    =INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    يرجى تذكر أنها تعمل فقط كـ صيغة صفيف في جميع الإصدارات بخلاف Excel 365 ، لذا تأكد من إدخالها بالضغط على مفتاحي Ctrl + Shift + Enter معًا. إذا تم القيام به بشكل صحيح ، فسيتم تضمين الصيغة في أقواس متعرجة كما هو موضح في لقطة الشاشة أدناه:

    كيف تعمل هذه الصيغة:

    كما هو الحال في جميع الأمثلة السابقة ، ترجع الدالة EXACT TRUE لكل قيمة في A2: A7 تتطابق تمامًا مع القيمة الموجودة في F2. نظرًا لأننا نستخدم TRUE من أجل lookup_value لـ MATCH ، فإنه يُرجع موضعًا نسبيًا للمطابقة الدقيقة الحساسة لحالة الأحرف ، وهو بالضبط ما يحتاجه INDEX لإرجاع تطابق من B2: B7.

    صيغة البحث المتقدمة الحساسة لحالة الأحرف

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

    افترض أن خلية في عمود العودة المقابلة لقيمة البحث فارغة. ماذا ستعود الصيغة؟ لا شئ.والآن ، دعنا نرى ما يتم إرجاعه بالفعل:

    =INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    عفوًا ، ترجع الصيغة صفرًا! ربما ، ليس مهمًا حقًا عند التعامل مع القيم النصية فقط. ومع ذلك ، إذا كانت ورقة العمل الخاصة بك تحتوي على أرقام وبعضها أصفار حقيقية ، فهذه مشكلة.

    في الحقيقة ، تتصرف جميع صيغ البحث الأخرى التي تمت مناقشتها مسبقًا بنفس الطريقة. لكنك الآن تريد صيغة لا تشوبها شائبة ، أليس كذلك؟

    لجعل صيغة INDEX MATCH الحساسة لحالة الأحرف مثالية تمامًا ، يمكنك لفها في وظيفة IF التي تتحقق مما إذا كانت الخلية المرتجعة فارغة ولا تُرجع شيئًا فيها هذه الحالة:

    =IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")

    في الصيغة أعلاه:

    • "C" هو عمود الإرجاع.
    • "1" هو الرقم يحول الموضع النسبي للخلية التي تم إرجاعها بواسطة دالة MATCH إلى عنوان خلية حقيقي .

    على سبيل المثال ، صفيف البحث في دالة MATCH الخاصة بنا هي A2: A7 ، مما يعني أن الموضع النسبي للخلية A2 هو "1" ، لأن هذه هي الخلية الأولى في الصفيف. لكن في الواقع ، تبدأ مصفوفة البحث في الصف 2. لتعويض الفرق ، نضيف 1 ، لذا ستعيد الدالة غير المباشرة قيمة من الخلية اليمنى.

    توضح لقطات الشاشة أدناه مؤشر INDEX المحسّن لحالة الأحرف صيغة MATCH قيد التنفيذ.

    إذا كانت الخلية المعادة فارغة ، فإن الصيغة لا تنتج شيئًا (سلسلة فارغة):

    إذا كانت الخلية المعادة تحتوي على صفر ، تقوم الصيغة بإرجاع 0:

    إذا كنت تفضل ذلكعرض بعض الرسائل عندما تكون خلية العودة فارغة ، استبدل سلسلة فارغة ("") في الوسيطة الأخيرة من IF ببعض النص:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")

    قم بعمل VLOOKUP الحساسة لحالة الأحرف بطريقة سهلة

    يمتلك مستخدمو Ultimate Suite for Excel أداة خاصة تجعل البحث في الجداول الكبيرة والمعقدة أسهل وخالية من الإجهاد. أفضل شيء هو أن Merge Two Tables يحتوي على خيار حساس لحالة الأحرف ، والمثال أدناه يوضحه أثناء العمل.

    افترض أنك تريد سحب الكمية. من الجدول بحث إلى الجدول الرئيسي استنادًا إلى معرف العنصر الفريد:

    ما تفعله هو تشغيل جداول الدمج المعالج وقم بتنفيذ الخطوات التالية:

    1. حدد الجدول الرئيسي الذي تريد سحب البيانات الجديدة إليه.
    2. حدد جدول البحث الذي تبحث فيه عن البيانات الجديدة.
    3. اختر عمودًا رئيسيًا واحدًا أو أكثر (معرف العنصر في حالتنا). وتأكد من تحديد المربع المطابقة الحساسة لحالة الأحرف .

  • سيرشدك المعالج خلال الخطوات الثلاث المتبقية حيث يمكنك تحديد الأعمدة التي تريد تحديثها ، والأعمدة المراد إضافتها واختيار بعض الخيارات الإضافية إذا لزم الأمر.
  • بعد لحظة ، ستحصل على النتيجة المرجوة :)

    هذه هي طريقة البحث في Excel مع مراعاة حالة النص. أشكرك على القراءة وآمل أن أراك على مدونتنا الأسبوع المقبل!

    تدرب على تنزيل المصنف

    أمثلة على VLOOKUP الحساسة لحالة الأحرف (ملف .xlsx)

    مايكل براون متحمس للتكنولوجيا ولديه شغف لتبسيط العمليات المعقدة باستخدام أدوات البرمجيات. مع أكثر من عشر سنوات من الخبرة في صناعة التكنولوجيا ، صقل مهاراته في Microsoft Excel و Outlook ، بالإضافة إلى جداول بيانات Google والمستندات. مدونة مايكل مكرسة لمشاركة معرفته وخبرته مع الآخرين ، وتقديم نصائح ودروس تعليمية سهلة المتابعة لتحسين الإنتاجية والكفاءة. سواء كنت محترفًا متمرسًا أو مبتدئًا ، تقدم مدونة مايكل رؤى قيمة ونصائح عملية للحصول على أقصى استفادة من أدوات البرامج الأساسية هذه.