عبارة Excel IF لمطابقة النص الجزئي (حرف بدل)

  • شارك هذا
Michael Brown

هل تحاول إنشاء جملة IF بنص حرف بدل ، لكنها تفشل في كل مرة؟ المشكلة ليست في الصيغة الخاصة بك ولكن في الوظيفة نفسها - لا يدعم Excel IF أحرف البدل. ومع ذلك ، هناك طريقة لجعلها تعمل لمطابقة نصية جزئية ، وسيعلمك هذا البرنامج التعليمي كيف.

عندما تريد إجراء مطابقة جزئية أو غامضة في Excel ، فإن الحل الأكثر وضوحًا هو لاستخدام أحرف البدل. ولكن ماذا لو كانت وظيفة معينة تحتاج إلى استخدامها لا تدعم أحرف البدل؟ للأسف ، يعد Excel IF أحد هذه الوظائف. هذا أمر مخيب للآمال بشكل خاص بالنظر إلى أن الوظائف "الشرطية" الأخرى مثل COUNTIF و SUMIF و AVERAGEIFS تعمل مع أحرف البدل بشكل جيد.

لحسن الحظ ، ليست العقبة هي التي يمكن أن توقف مستخدم Excel الإبداعي :) من خلال الجمع بين IF مع وظائف أخرى ، يمكنك إجبارها على تقييم تطابق جزئي والحصول على بديل جيد لصيغة Excel IF wildcard.

    لماذا لا تعمل وظيفة Excel IF مع حرف البدل

    في نموذج الجدول أدناه ، لنفترض أنك تريد التحقق مما إذا كانت المعرفات الموجودة في العمود الأول تحتوي على الحرف "A". إذا وجدت - اعرض "نعم" في العمود B ، إذا لم يكن كذلك - اعرض "لا".

    يبدو أن تضمين نص حرف البدل في الاختبار المنطقي سيكون حلاً سهلاً:

    =IF(A2="*a*","Yes", "No")

    لكن للأسف لا يعمل. ترجع الصيغة "لا" لجميع الخلايا ، حتى تلك التي تحتوي على "A":

    لماذاعبارة IF wildcard تفشل؟ من جميع المظاهر ، لا يتعرف Excel على أحرف البدل المستخدمة بعلامة التساوي أو العوامل المنطقية الأخرى. عند إلقاء نظرة فاحصة على قائمة الوظائف التي تدعم أحرف البدل ، ستلاحظ أن تركيبها يفترض ظهور نص حرف بدل مباشرةً في وسيطة مثل:

    =COUNTIF(A2:A10, "*a*")

    يحتوي Excel IF على نص جزئي

    الآن بعد أن عرفت سبب فشل صيغة حرف بدل IF ، دعنا نحاول معرفة كيفية جعلها تعمل. لهذا ، سنقوم ببساطة بتضمين دالة تقبل أحرف البدل في الاختبار المنطقي لـ IF ، وهي وظيفة COUNTIF:

    IF (COUNTIF ( خلية، "* text* ") ، value_if_true ، value_if_false)

    باستخدام هذا الأسلوب ، لا يواجه IF مشكلة في فهم أحرف البدل ويحدد بشكل لا تشوبه شائبة الخلايا التي تحتوي على" A "أو" a "(نظرًا لأن COUNTIF ليست حساسة لحالة الأحرف):

    =IF(COUNTIF(A2, "*a*"),"Yes", "No")

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

    يمكن أيضًا استخدام هذا الحل لتحديد موقع سلاسل من نمط معين . بافتراض صلاحية المعرفات المكونة من مجموعتين من حرفين مفصولة بواصلة ، يمكنك استخدام "؟؟ - ؟؟" سلسلة أحرف البدل لتحديدها:

    =IF(COUNTIF(A2, "??-??"), "Valid", "")

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

    للاختبار المنطقي لـ إذا ، فإننا نستخدم وظيفة COUNTIF التي تحسب عدد الخلايا المطابقة لحرف البدل المحددسلسلة. نظرًا لأن نطاق المعايير عبارة عن خلية واحدة (A2) ، تكون النتيجة دائمًا 1 (تم العثور على تطابق) أو 0 (لم يتم العثور على تطابق). بالنظر إلى أن 1 يساوي TRUE و 0 إلى FALSE ، تُرجع الصيغة "صالح" (value_if_true) عندما يكون العدد 1 وسلسلة فارغة (value_if_false) عندما يكون العدد 0.

    IF ISNUMBER SEARCH Formula for part. يطابق

    هناك طريقة أخرى لإجبار Excel IF على العمل لمطابقة نصية جزئية وهي تضمين إما دالة FIND أو SEARCH في الاختبار المنطقي. الفرق هو أن FIND حساسة لحالة الأحرف بينما البحث ليس كذلك.

    لذلك ، اعتمادًا على ما إذا كنت تريد التعامل مع الأحرف الصغيرة والكبيرة مثل الأحرف نفسها أو أحرف مختلفة ، ستعمل إحدى هذه الصيغ على علاج:

    صيغة غير حساسة لحالة الأحرف للمطابقة الجزئية:

    IF (ISNUMBER (SEARCH (" text" ، خلية)) ، value_if_true ، value_if_false )

    صيغة حساسة لحالة الأحرف للمطابقة الجزئية:

    IF (ISNUMBER (FIND (" text cell))، value_if_true، value_if_false )

    نظرًا لأن كلتا الوظيفتين مصممتان لأداء نوع مطابقة "خلية تحتوي على" ، فإن أحرف البدل ليست مطلوبة حقًا في هذه الحالة.

    على سبيل المثال ، لاكتشاف المعرفات التي تحتوي على "A" أو "a" ، الصيغة هي:

    =IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")

    للبحث فقط عن حرف "A" وتجاهل "a" ، الصيغة هي:

    =IF(ISNUMBER(FIND("A", A2)), "Yes", "No")

    في B6 في لقطة الشاشة أدناه ، يمكنك ملاحظة الاختلاف في النتيجة:

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

    في قلبالصيغة ، هناك مجموعة من ISNUMBER و SEARCH (أو FIND):

    ISNUMBER(SEARCH("A", A2))

    تبحث دالة SEARCH عن النص المحدد ("A" في هذا المثال) وتعيد موضعها داخل سلسلة في A2. إذا لم يتم العثور على النص ، فسيتم إرجاع الخطأ #VALUE. نظرًا لأن كلاً من SEARCH و FIND مصممان لأداء نوع "خلية تحتوي على" من المطابقة ، فإن أحرف البدل ليست مطلوبة حقًا في هذه الحالة.

    تحول الدالة ISNUMBER رقمًا إلى TRUE وأي قيمة أخرى بما في ذلك الخطأ إلى FALSE . تذهب القيمة المنطقية مباشرة إلى الاختبار المنطقي لـ IF. في حالتنا ، يحتوي A2 على "A" ، لذا فإن ISNUMBER تُرجع TRUE:

    IF(TRUE, "Yes", "No")

    كنتيجة لذلك ، تُرجع IF مجموعة القيمة للوسيطة value_if_true ، وهي "نعم".

    عبارة Excel IF OR مع أحرف البدل

    هل تريد تحديد الخلايا التي تحتوي على إحدى سلاسل نص أحرف البدل؟ في هذه الحالة ، يمكنك دمج عبارة IF OR الكلاسيكية مع صيغة COUNTIF أو ISNUMBER SEARCH الموضحة أعلاه.

    على سبيل المثال ، للبحث عن "aa" أو "bb" في A2 مع تجاهل حالة الأحرف والعودة " نعم "إذا تم العثور على أي منهما ، فاستخدم إحدى هذه الصيغ:

    =IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")

    أو

    =IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")

    ستعمل إضافة وظيفتين COUNTIF أيضًا. في هذه الحالة ، تعمل علامة الجمع مثل عامل التشغيل OR:

    =IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")

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

    =IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")

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

    قم بتزويد سلاسل فرعية متعددة لوظيفة SEARCH في ثابت صفيف ، وعد الأرقام التي تم إرجاعها ، وتحقق مما إذا كانت النتيجة أكبر من الصفر (وهو ما يعني أن واحدًا على الأقل من السلاسل الفرعية إذا وجد):

    =IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")

    بهذه الطريقة ، ستحصل على نفس النتيجة تمامًا مع صيغة أكثر إحكاما:

    صيغة Excel IF AND مع أحرف البدل

    عندما تريد التحقق مما إذا كانت الخلية تحتوي على سلسلتين فرعيتين مختلفتين أو أكثر ، فإن أسهل طريقة هي استخدام وظيفة COUNTIFS مع أحرف البدل للاختبار المنطقي.

    لنفترض أنك تريد تحديد موقع الخلايا في العمود A التي تحتوي على "b" و "2". للقيام بذلك ، استخدم "* b *" و "* 2 *" لمعايير COUNTIFS و A2 لنطاق المعايير:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")

    هناك طريقة أخرى وهي استخدام صيغة IF AND معًا باستخدام ISNUMBER SEARCH:

    =IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")

    على الرغم من أننا لا نقوم بتضمين أي أحرف بدل في هذه الصيغة ، إلا أنها تعمل مثل البحث عن سلسلتي أحرف بدل ("* b *" و "* 2 *" ) في نفس الخلية.

    بالطبع ، لا شيء يمنعك من إدخال قيم البحث في الخلايا المحددة مسبقًا ، D2 و F2 في حالتنا ، وتوفيرتشير الخلية إلى الصيغة:

    =IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")

    إذا كنت تفضل استخدام صيغ أكثر إحكاما كلما كان ذلك ممكنا ، فمن الأفضل لك أسلوب ثابت الصفيف. تشبه صيغة IF COUNT SEARCH إلى حد كبير في المثال السابق ، ولكن نظرًا لأن كلا السلاسل الفرعية هذه المرة يجب أن تظهر في A2 ، فإننا نتحقق مما إذا كان العدد يساوي 2:

    =IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")

    هذه هي الطرق الرئيسية لاستخدام أحرف البدل في عبارة IF في Excel. إذا كنت تعرف أي حلول أخرى ، فسيقدر المستخدمون الآخرون بالتأكيد مشاركة تجربتك في التعليقات. أشكرك على القراءة وآمل أن أراك على مدونتنا الأسبوع المقبل!

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

    أمثلة على صيغة أحرف البدل في Excel IF (ملف .xlsx)

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