Аператар Excel IF для частковага супадзення тэксту (знак падстаноўкі)

  • Падзяліцца Гэтым
Michael Brown

Спрабуеце стварыць аператар IF з тэкстам падстаноўкі, але кожны раз не атрымліваецца? Праблема не ў вашай формуле, а ў самой функцыі - Excel IF не падтрымлівае сімвалы падстаноўкі. Аднак ёсць спосаб прымусіць яго працаваць для частковага супадзення тэксту, і гэты падручнік навучыць вас, як.

Кожны раз, калі вы хочаце выканаць частковае або недакладнае супадзенне ў Excel, найбольш відавочным рашэннем з'яўляецца выкарыстоўваць падстаноўныя знакі. Але што, калі пэўная функцыя, якую вам трэба выкарыстоўваць, не падтрымлівае сімвалы падстаноўкі? На жаль, Excel IF - адна з такіх функцый. Гэта асабліва расчароўвае, калі ўлічыць, што іншыя "ўмоўныя" функцыі, такія як COUNTIF, SUMIF і AVERAGEIFS, выдатна працуюць з падстаноўнымі знакамі.

На шчасце, гэта не тая перашкода, якая можа спыніць творчага карыстальніка Excel :) Камбінуючы IF з дапамогай іншых функцый вы можаце прымусіць яго ацэньваць частковае супадзенне і атрымаць добрую альтэрнатыву формуле Excel IF з падстаноўным знакам.

    Чаму функцыя Excel IF з падстаноўным знакам не працуе

    У прыкладзе табліцы ніжэй, выкажам здагадку, што вы хочаце праверыць, ці ўтрымліваюць ідэнтыфікатары ў першым слупку літару "A". Калі знойдзена - пакажыце "Так" у слупку B, калі не - пакажыце "Не".

    Падобна на тое, што ўключыць тэкст падстаноўкі ў лагічны тэст было б простым рашэннем:

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

    Але, на жаль, гэта не працуе. Формула вяртае "Не" для ўсіх ячэек, нават тых, якія змяшчаюць "А":

    Чамуаператар падстаноўкі IF не працуе? Па ўсёй бачнасці, Excel не распазнае падстаноўныя знакі, якія выкарыстоўваюцца са знакам роўнасці або іншымі лагічнымі аператарамі. Прыгледзеўшыся бліжэй да спісу функцый, якія падтрымліваюць падстаноўныя знакі, вы заўважыце, што іх сінтаксіс прадугледжвае, што тэкст падстаноўныя знакі з'яўляецца непасрэдна ў аргументы, як гэта:

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

    Excel IF змяшчае частковы тэкст

    Цяпер, калі вы ведаеце прычыну, па якой формула падстаноўкі КАЛІ не працуе, давайце паспрабуем высветліць, як прымусіць яе працаваць. Для гэтага мы проста ўбудуем функцыю, якая прымае падстаноўныя знакі ў лагічны тэст КАЛІ, а менавіта функцыю COUNTIF:

    IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)

    Пры такім падыходзе IF не мае праблем з разуменнем падстаноўных знакаў і бездакорна вызначае ячэйкі, якія змяшчаюць "A" або "a" (паколькі COUNTIF не ўлічвае рэгістр):

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

    Гэта формула пераходзіць у B2 або любую іншую ячэйку ў радку 2, а затым вы можаце перацягнуць яе ўніз да столькіх вочак, колькі неабходна:

    Гэта рашэнне таксама можна выкарыстоўваць для пошуку радкоў пэўнага шаблону . Мяркуючы, што сапраўдныя толькі ідэнтыфікатары, якія складаюцца з 2 груп па 2 сімвалы, падзеленых злучком, вы можаце выкарыстоўваць "??-??" радок падстаноўкі для іх ідэнтыфікацыі:

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

    Як працуе гэтая формула:

    Для лагічнай праверкі КАЛІ, мы выкарыстоўваем функцыю COUNTIF, якая падлічвае колькасць ячэек, якія адпавядаюць зададзенаму шаблонурадок. Паколькі дыяпазон крытэрыяў - гэта адна ячэйка (A2), вынік заўсёды роўны 1 (супадзенне знойдзена) або 0 (супадзенне не знойдзена). Улічваючы, што 1 прыраўноўваецца да TRUE, а 0 да FALSE, формула вяртае «Сапраўдны» (value_if_true), калі лік роўны 1, і пусты радок (value_if_false), калі лік роўны 0.

    КАЛІ ЁСЦЬ ФОРМУЛА ПОШУКУ НУМАРА для частковага супадае

    Іншы спосаб прымусіць Excel IF працаваць на частковае супадзенне тэксту - уключыць у лагічны тэст функцыю ПОШУК або ПОШУК. Розніца ў тым, што FIND адчувальны да рэгістра, а SEARCH - не.

    Такім чынам, у залежнасці ад таго, хочаце вы разглядаць малыя і вялікія літары як аднолькавыя або розныя сімвалы, адна з гэтых формул будзе працаваць добра:

    Неадчувальная да рэгістра формула для частковага супадзення:

    IF(ISNUMBER(SEARCH(" text", cell)), 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")

    Каб шукаць толькі вялікую літару "А" і ігнараваць "а", формула:

    =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 таксама будзе працаваць. У гэтым выпадку знак плюс працуе як аператар АБО:

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

    Замест жорсткага кадзіравання радкоў падстаноўкі ў формуле, вы можаце ўвесці іх у асобныя ячэйкі, скажам, 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 з падстаноўнымі знакамі для лагічнай праверкі.

    Выкажам здагадку, што вы жадаеце знайсці ячэйкі ў слупку A, якія змяшчаюць як "b", так і "2". Каб зрабіць гэта, выкарыстоўвайце "*b*" і "*2*" для крытэрыяў COUNTIFS і A2 для дыяпазону крытэрыяў:

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

    Іншы спосаб - выкарыстоўваць формулу КАЛІ І разам з дапамогай 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 Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.