Изказване на Excel IF за частично съвпадение на текст (заместващ символ)

  • Споделя Това
Michael Brown

Опитвате се да съставите декларация IF с текст със заместващи символи, но всеки път се проваля? Проблемът не е във вашата формула, а в самата функция - Excel IF не поддържа заместващи символи. Има обаче начин да я накарате да работи за частично съвпадение на текст и този урок ще ви научи как.

Когато искате да извършите частично или размито съвпадение в Excel, най-очевидното решение е да използвате заместващи знаци. Но какво да правите, ако конкретна функция, която трябва да използвате, не поддържа заместващи знаци? За съжаление Excel IF е една от тези функции. Това е особено разочароващо, като се има предвид, че други "условни" функции, като COUNTIF, SUMIF и AVERAGEIFS, работят с заместващи знаци напълно добре.

За щастие, това не е препятствието, което може да спре креативния потребител на Excel :) Като комбинирате IF с други функции, можете да го принудите да оценява частично съвпадение и да получите хубава алтернатива на формулата за заместващи символи на Excel IF.

    Защо функцията на Excel IF с паралелен знак не работи

    В примерната таблица по-долу, да предположим, че искате да проверите дали идентификаторите в първата колона съдържат буквата "А". Ако са намерени - покажете "Да" в колона Б, ако не - покажете "Не".

    Изглежда, че включването на текст със заместващи символи в логическия тест би било лесно решение:

    =IF(A2="*a*", "Да", "Не")

    Но за съжаление това не се получава. Формулата връща "Не" за всички клетки, дори за тези, които съдържат "А":

    Защо се проваля заявката IF със заместващ знак? По всичко личи, че Excel не разпознава заместващи знаци, използвани със знак за равенство или други логически оператори. Ако разгледате по-внимателно списъка с функции, поддържащи заместващи знаци, ще забележите, че техният синтаксис предполага, че текстът със заместващ знак се появява директно в аргумента, както е в този случай:

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

    Excel IF съдържа частичен текст

    Сега, след като знаете причината за неуспеха на формулата IF със заместващи знаци, нека се опитаме да разберем как да я накараме да работи. За тази цел просто ще вградим функция, която приема заместващи знаци, в логическия тест на IF, а именно функцията COUNTIF:

    IF(COUNTIF( клетка , "* текст *"), value_if_true, value_if_false)

    При този подход IF няма проблеми с разбирането на заместващите символи и безпроблемно идентифицира клетките, които съдържат "A" или "a" (тъй като COUNTIF не е чувствителен към малки и големи букви):

    =IF(COUNTIF(A2, "*a*"), "Да", "Не")

    Тази формула се премества в B2 или във всяка друга клетка в ред 2 и след това можете да я плъзнете надолу до колкото клетки е необходимо:

    Това решение може да се използва и за намиране на низове от определен модел . Ако приемем, че само идентификаторите, състоящи се от 2 групи от по 2 символа, разделени с тире, са валидни, можете да използвате символния низ "??-??", за да ги идентифицирате:

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

    Как работи тази формула:

    За логическия тест на IF използваме функцията COUNTIF, която преброява броя на клетките, съответстващи на зададения символен низ. Тъй като обхватът на критериите е една клетка (A2), резултатът винаги е 1 (намерено е съответствие) или 0 (не е намерено съответствие). Като се има предвид, че 1 е равно на TRUE, а 0 - на FALSE, формулата връща "Valid" (стойност_if_true), когато броят е 1, и празен низ (стойност_if_false), когато броят е 1.броят е 0.

    IF ISNUMBER Формула за търсене на частични съвпадения

    Друг начин да принудите Excel IF да работи за частично съвпадение на текст е да включите функцията FIND или SEARCH в логическия тест. Разликата е, че FIND е чувствителна към малки и големи букви, докато SEARCH не е.

    Така че в зависимост от това дали искате да третирате малките и големите букви като еднакви или различни символи, една от тези формули ще ви свърши работа:

    Без значение на размера на буквите формула за частично съвпадение:

    IF(ISNUMBER(SEARCH(" текст ", клетка )), value_if_true, value_if_false)

    Чувствителност на буквите формула за частично съвпадение:

    IF(ISNUMBER(FIND(" текст ", клетка )), value_if_true, value_if_false)

    Тъй като и двете функции са предназначени за извършване на съвпадение от типа "клетката съдържа", в този случай не са необходими заместващи символи.

    Например, за откриване на идентификатори, съдържащи "A" или "a", формулата е:

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

    За да търсите само за главна буква "А" и да игнорирате "а", формулата е:

    =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*"), "Да", "")

    Вместо да кодирате символните низове във формулата, можете да ги въведете в отделни клетки, например D2 и F2, както е показано на снимката по-долу. Обърнете внимание, че препратките към тези клетки са заключени със знака $, така че формулата да се копира правилно в долните клетки:

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

    Горните формули работят добре за 2 частични съвпадения, но ако търсите 3 или повече, те ще станат твърде дълги. В този случай е логично да подходите към задачата по различен начин:

    Подайте няколко подниза на функцията SEARCH в константа на масив, пребройте върнатите числа и проверете дали резултатът е по-голям от нула (което би означавало, че е намерен поне един от поднизите):

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

    По този начин ще получите същия резултат с по-компактна формула:

    Формула на Excel IF AND със заместващи символи

    Когато искате да проверите дали дадена клетка съдържа два или повече различни подниза, най-лесният начин е да използвате функцията COUNTIFS със заместващи символи за логическия тест.

    Да предположим, че искате да намерите клетки в колона А, които съдържат едновременно "b" И "2". За да го направите, използвайте "*b*" и "*2*" за критериите на COUNTIFS и A2 за обхвата на критериите:

    =IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Да", "")

    Друг начин е да използвате формулата 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, "Да", "")

    Това са основните методи за използване на заместващи символи в изявлението IF в Excel. Ако знаете други решения, други потребители със сигурност ще бъдат благодарни, ако споделите опита си в коментарите. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка за изтегляне

    Примери за формулата за заместващи символи на Excel IF (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.