Excel IF statement para sa bahagyang tugma ng teksto (wildcard)

  • Ibahagi Ito
Michael Brown

Sinusubukang bumuo ng IF statement na may wildcard na text, ngunit nabigo ito sa bawat pagkakataon? Ang problema ay wala sa iyong formula ngunit sa mismong function - Hindi sinusuportahan ng Excel IF ang mga wildcard na character. Gayunpaman, mayroong isang paraan upang gawin itong gumana para sa bahagyang pagtutugma ng teksto, at ituturo sa iyo ng tutorial na ito kung paano.

Sa tuwing gusto mong magsagawa ng bahagyang o malabo na pagtutugma sa Excel, ang pinaka-halatang solusyon ay gumamit ng mga wildcard. Ngunit paano kung ang isang partikular na function na kailangan mong gamitin ay hindi sumusuporta sa mga wildcard na character? Nakalulungkot, ang Excel IF ay isa sa mga naturang function. Ito ay lalo na nakakadismaya kung isasaalang-alang na ang iba pang mga "kondisyon" na mga function tulad ng COUNTIF, SUMIF, at AVERAGEIFS ay gumagana nang perpekto sa mga wildcard.

Sa kabutihang palad, hindi ito ang balakid na makakapigil sa isang malikhaing gumagamit ng Excel :) Sa pamamagitan ng pagsasama-sama ng IF sa iba pang mga function, maaari mo itong pilitin na suriin ang isang bahagyang tugma at makakuha ng magandang alternatibo sa isang Excel IF wildcard formula.

    Bakit Excel IF function na may wildcard na hindi gumagana

    Sa halimbawang talahanayan sa ibaba, ipagpalagay na gusto mong tingnan kung ang mga ID sa unang column ay naglalaman ng titik na "A". Kung natagpuan - ipakita ang "Oo" sa column B, kung hindi - ipakita ang "Hindi".

    Mukhang madaling solusyon ang pagsasama ng wildcard na text sa lohikal na pagsubok:

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

    Ngunit nakalulungkot na hindi ito gumana. Ang formula ay nagbabalik ng "Hindi" para sa lahat ng mga cell, kahit na ang mga naglalaman ng "A":

    Bakitisang wildcard KUNG mabibigo ang pahayag? Mula sa lahat ng hitsura, hindi nakikilala ng Excel ang mga wildcard na ginamit na may katumbas na tanda o iba pang lohikal na operator. Kung susuriing mabuti ang listahan ng mga function na sumusuporta sa mga wildcard, mapapansin mong ipinapalagay ng kanilang syntax na ang isang wildcard na text ay direktang lalabas sa isang argumentong tulad nito:

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

    Ang Excel IF ay naglalaman ng bahagyang text

    Ngayong alam mo na ang dahilan kung bakit nabigo ang isang wildcard na formula, subukan nating malaman kung paano ito gagana. Para dito, mag-e-embed lang kami ng function na tumatanggap ng mga wildcard sa logical test ng IF, katulad ng COUNTIF function:

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

    Sa diskarteng ito, ang IF ay walang problema sa pag-unawa sa mga wildcard at walang kamali-mali na kinikilala ang mga cell na naglalaman ng alinman sa "A" o "a" (dahil ang COUNTIF ay hindi case-sensitive):

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

    Ang formula na ito ay napupunta sa B2, o anumang iba pang cell sa row 2, at pagkatapos ay maaari mo itong i-drag pababa sa pinakamaraming cell kung kinakailangan:

    Maaari ding gamitin ang solusyon na ito upang mahanap ang mga string ng isang partikular na pattern . Ipagpalagay na ang mga ID lang na binubuo ng 2 grupo ng 2 character na pinaghihiwalay ng gitling ay wasto, maaari mong gamitin ang "??-??" wildcard string para makilala sila:

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

    Paano gumagana ang formula na ito:

    Para sa lohikal na pagsubok ng KUNG, ginagamit namin ang function na COUNTIF na binibilang ang bilang ng mga cell na tumutugma sa tinukoy na wildcardstring. Dahil ang hanay ng pamantayan ay isang solong cell (A2), ang resulta ay palaging 1 (matatagpuan ang tugma) o 0 (wala ang tugma). Dahil ang 1 ay katumbas ng TRUE at 0 sa FALSE, ang formula ay nagbabalik ng "Valid" (value_if_true) kapag ang bilang ay 1 at isang walang laman na string (value_if_false) kapag ang bilang ay 0.

    IF ISNUMBER SEARCH formula para sa bahagyang mga tugma

    Ang isa pang paraan upang pilitin ang Excel IF na gumana para sa bahagyang tugma ng teksto ay ang pagsama ng alinman sa FIND o SEARCH function sa lohikal na pagsubok. Ang pagkakaiba ay ang FIND ay case-sensitive habang ang SEARCH ay hindi.

    Kaya, depende sa kung gusto mong ituring ang lowercase at uppercase bilang pareho o magkaibang mga character, isa sa mga formula na ito ay gagana ng isang treat:

    Case-insensitive na formula para sa bahagyang tugma:

    IF(ISNUMBER(SEARCH(" text", cell)), value_if_true, value_if_false )

    Case-sensitive na formula para sa bahagyang tugma:

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

    Dahil ang parehong mga function ay idinisenyo upang magsagawa ng isang "cell contains" na uri ng pagtutugma, ang mga wildcard ay hindi talaga kailangan sa kasong ito.

    Halimbawa, upang makita ang mga ID na naglalaman ng "A" o "a" , ang formula ay:

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

    Upang maghanap lamang ng malaking titik na "A" at huwag pansinin ang "a", ang formula ay:

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

    Sa B6 sa screenshot sa ibaba, makikita mo ang pagkakaiba sa resulta:

    Paano gumagana ang formula na ito:

    Sa puso ngang formula, mayroong kumbinasyon ng ISNUMBER at SEARCH (o FIND):

    ISNUMBER(SEARCH("A", A2))

    Hinahanap ng SEARCH function ang tinukoy na text ("A" sa halimbawang ito) at ibinabalik ang posisyon nito sa loob isang string sa A2. Kung hindi mahanap ang text, ibabalik ang isang #VALUE error. Dahil ang parehong SEARCH at FIND ay idinisenyo upang magsagawa ng "cell contains" na uri ng pagtutugma, ang mga wildcard ay hindi talaga kailangan sa kasong ito.

    Ang ISNUMBER function ay nagko-convert ng numero sa TRUE at anumang iba pang value kasama ang error sa FALSE . Ang lohikal na halaga ay direktang napupunta sa lohikal na pagsubok ng IF. Sa aming kaso, ang A2 ay naglalaman ng "A", kaya ang ISNUMBER ay nagbabalik ng TRUE:

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

    Bilang resulta, ibinabalik ng IF ang value set para sa value_if_true argument, na kung saan ay "Oo".

    Excel IF OR statement na may mga wildcard

    Kailangan bang tukuyin ang mga cell na naglalaman ng isa sa mga wildcard na text string? Sa kasong ito, maaari mong pagsamahin ang classic na IF OR statement sa COUNTIF o ISNUMBER SEARCH na formula na tinalakay sa itaas.

    Halimbawa, para hanapin ang "aa" O "bb" sa A2 na hindi pinapansin ang letter case at ibalik ang " Oo" kung mahanap ang alinman, gamitin ang isa sa mga formula na ito:

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

    o

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

    Gagana rin ang pagdaragdag ng dalawang COUNTIF function. Sa kasong ito, gumagana ang plus sign tulad ng OR operator:

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

    Sa halip na hardcoding wildcard string sa formula, maaari mong ipasok ang mga ito sa magkahiwalay na mga cell, sabihin ang D2 at F2, tulad ng ipinapakita sa screenshot sa ibaba. Mangyaring pansinin na ang mga itoang mga cell reference ay naka-lock gamit ang $ sign upang ang formula ay makopya nang tama sa mga cell sa ibaba:

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

    Ang mga formula sa itaas ay gumagana nang maayos para sa 2 bahagyang tugma , ngunit kung naghahanap ka ng 3 o higit pa, magiging masyadong mahaba ang mga ito. Sa kasong ito, ito ay may dahilan upang lapitan ang gawain sa ibang paraan:

    Magbigay ng maraming substring sa SEARCH function sa array constant, bilangin ang mga naibalik na numero, at suriin kung ang resulta ay mas malaki kaysa sa zero (na nangangahulugang na hindi bababa sa isa sa mga substring kung natagpuan):

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

    Sa ganitong paraan, makakakuha ka ng eksaktong parehong resulta sa isang mas compact na formula:

    Excel IF AND formula na may mga wildcard

    Kapag gusto mong tingnan kung ang isang cell ay naglalaman ng dalawa o higit pang magkakaibang mga substring, ang pinakamadaling paraan ay ang paggamit ng COUNTIFS function na may mga wildcard para sa lohikal na pagsubok.

    Ipagpalagay na gusto mong hanapin ang mga cell sa column A na naglalaman ng parehong "b" AT "2". Upang magawa ito, gamitin ang "*b*" at "*2*" para sa pamantayan ng COUNTIFS at A2 para sa hanay ng pamantayan:

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

    Ang isa pang paraan ay ang paggamit ng IF AT formula nang magkasama na may ISNUMBER SEARCH:

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

    Bagaman hindi kami nagsasama ng anumang mga wildcard na character sa formula na ito, gumagana ito tulad ng paghahanap ng dalawang wildcard na string ("*b*" at "*2*" ) sa parehong cell.

    Siyempre, walang pumipigil sa iyo na ipasok ang mga halaga ng paghahanap sa mga paunang natukoy na mga cell, D2 at F2 sa aming kaso, at pagbibigayang mga cell reference sa formula:

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

    Kung mas gusto mong gumamit ng mga mas compact na formula hangga't maaari, mas gusto mo ang array constant approach. Ang formula ng IF COUNT SEARCH ay katulad ng sa nakaraang halimbawa, ngunit dahil sa pagkakataong ito ang parehong mga substring ay dapat lumabas sa A2, tinitingnan namin kung ang bilang ay katumbas ng 2:

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

    Ito ang mga pangunahing paraan ng paggamit ng wildcard sa IF statement sa Excel. Kung may alam ka pang ibang mga solusyon, tiyak na mapapahalagahan ng ibang mga user kung ibabahagi mo ang iyong karanasan sa mga komento. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!

    Magsanay ng workbook para sa pag-download

    Mga halimbawa ng Excel IF wildcard formula (.xlsx file)

    Si Michael Brown ay isang dedikadong mahilig sa teknolohiya na may hilig sa pagpapasimple ng mga kumplikadong proseso gamit ang mga tool sa software. Sa higit sa isang dekada ng karanasan sa industriya ng tech, hinasa niya ang kanyang mga kasanayan sa Microsoft Excel at Outlook, pati na rin ang Google Sheets at Docs. Ang blog ni Michael ay nakatuon sa pagbabahagi ng kanyang kaalaman at kadalubhasaan sa iba, na nagbibigay ng madaling sundan na mga tip at mga tutorial para sa pagpapabuti ng pagiging produktibo at kahusayan. Isa ka mang batikang propesyonal o baguhan, nag-aalok ang blog ni Michael ng mahahalagang insight at praktikal na payo para masulit ang mahahalagang software tool na ito.