Kazalo
Poskušate sestaviti stavek IF z nadomestnim besedilom, vendar se vsakič ne izide? Težava ni v vaši formuli, temveč v sami funkciji - Excelova funkcija IF ne podpira nadomestnih znakov. Vendar obstaja način, kako jo pripraviti, da deluje za delno ujemanje besedila, in v tem vodniku se boste naučili, kako.
Kadar želite v Excelu izvesti delno ali nejasno ujemanje, je najbolj očitna rešitev uporaba nadomestnih znakov. Toda kaj, če določena funkcija, ki jo morate uporabiti, ne podpira nadomestnih znakov? Ena takih funkcij je žal Excelova funkcija IF. To je še posebej razočaranje, saj druge "pogojne" funkcije, kot so COUNTIF, SUMIF in AVERAGEIFS, odlično delujejo z nadomestnimi znaki.
Na srečo to ni ovira, ki lahko ustavi ustvarjalnega uporabnika programa Excel :) Z združevanjem funkcije IF z drugimi funkcijami jo lahko prisilite, da oceni delno ujemanje, in dobite lepo alternativo Excelovi formuli IF z nadomestnim znakom.
Zakaj funkcija Excel IF z nadomestnim znakom ne deluje
V spodnji vzorčni tabeli želite preveriti, ali ID-ji v prvem stolpcu vsebujejo črko "A". Če jo vsebujejo, se v stolpcu B prikaže "Da", če ne - se prikaže "Ne".
Zdi se, da bi bila enostavna rešitev vključitev nadomestnega besedila v logični test:
=IF(A2="*a*", "Da", "Ne")
Žal ne deluje. Formula vrne "Ne" za vse celice, tudi tiste, ki vsebujejo "A":
Zakaj izjava IF z nadomestnim znakom ne uspe? Na prvi pogled Excel ne prepozna nadomestnih znakov, uporabljenih z znakom za enakost ali drugimi logičnimi operatorji. Če si podrobneje ogledate seznam funkcij, ki podpirajo nadomestne znake, boste opazili, da njihova sintaksa predpostavlja, da se besedilo nadomestnega znaka pojavi neposredno v argumentu, kot je ta:
=COUNTIF(A2:A10, "*a*")
Excel IF vsebuje delno besedilo
Zdaj, ko veste, zakaj formula IF z nadomestnimi znaki ni uspešna, poskusite ugotoviti, kako jo spraviti v delovanje. V ta namen bomo v logični preizkus IF preprosto vgradili funkcijo, ki sprejema nadomestne znake, in sicer funkcijo COUNTIF:
IF(COUNTIF( celica , "* besedilo *"), value_if_true, value_if_false)S tem pristopom IF nima težav z razumevanjem nadomestnih znakov in brezhibno prepozna celice, ki vsebujejo "A" ali "a" (ker COUNTIF ne razlikuje velikih in malih črk):
=IF(COUNTIF(A2, "*a*"), "Da", "Ne")
Ta formula se prenese v B2 ali katero koli drugo celico v vrstici 2, nato pa jo lahko povlečete v poljubno število celic:
To rešitev lahko uporabite tudi za iskanje nizov določenega vzorca Če so veljavni samo ID-ji, sestavljeni iz dveh skupin po dveh znakov, ločenih s pomišljajem, lahko za njihovo identifikacijo uporabite niz "??-???":
=IF(COUNTIF(A2, "??-???"), "Velja", "")
Kako deluje ta formula:
Za logični preizkus IF uporabimo funkcijo COUNTIF, ki šteje število celic, ki ustrezajo določenemu nadomestnemu nizu. Ker je območje meril ena celica (A2), je rezultat vedno 1 (ujemanje je najdeno) ali 0 (ujemanje ni najdeno). Ker je 1 enako TRUE, 0 pa FALSE, formula vrne "Velja" (vrednost_if_true), če je število 1, in prazen niz (vrednost_if_false), če je število 1.število je 0.
IF ISNUMBER Iskalna formula za delna ujemanja
Drug način, kako prisiliti Excel IF, da deluje za delno ujemanje besedila, je, da v logični preizkus vključite funkcijo FIND ali SEARCH. Razlika je v tem, da je funkcija FIND občutljiva na velikost črk, funkcija SEARCH pa ne.
Glede na to, ali želite male in velike črke obravnavati kot enake ali različne znake, bo ena od teh formul zelo primerna:
Neobčutljivost velikih in malih črk formula za delno ujemanje:
IF(ISNUMBER(SEARCH(" besedilo ", celica )), value_if_true, value_if_false)Občutljivost na velike in male črke formula za delno ujemanje:
IF(ISNUMBER(FIND(" besedilo ", celica )), value_if_true, value_if_false)Ker sta obe funkciji zasnovani tako, da izvajata ujemanje tipa "celica vsebuje", nadomestni znaki v tem primeru niso potrebni.
Na primer, za odkrivanje ID-jev, ki vsebujejo "A" ali "a", je formula naslednja:
=IF(ISNUMBER(SEARCH("A", A2)), "Da", "Ne")
Če želite poiskati samo veliko črko "A" in zanemariti črko "a", je formula naslednja:
=IF(ISNUMBER(FIND("A", A2)), "Da", "Ne")
V primeru B6 na spodnji sliki zaslona lahko opazite razliko v rezultatih:
Kako deluje ta formula:
Jedro formule je kombinacija ISNUMBER in SEARCH (ali FIND):
ISNUMBER(SEARCH("A", A2))
Funkcija SEARCH išče določeno besedilo ("A" v tem primeru) in vrne njegov položaj v nizu v A2. Če besedilo ni najdeno, se vrne napaka #VALUE. Ker sta funkciji SEARCH in FIND zasnovani tako, da izvajata ujemanje tipa "celica vsebuje", nadomestni znaki v tem primeru niso potrebni.
Funkcija ISNUMBER pretvori število v TRUE, vsako drugo vrednost, vključno z napako, pa v FALSE. Logična vrednost gre neposredno v logični test IF. V našem primeru A2 vsebuje "A", zato ISNUMBER vrne TRUE:
IF(TRUE, "Da", "Ne")
Kot rezultat IF vrne vrednost, nastavljeno za value_if_true ki je "Da".
Izjava Excel IF ALI z nadomestnimi znaki
Potrebujete prepoznati celice, ki vsebujejo enega od besedilnih nizov z nadomestnimi znaki? V tem primeru lahko kombinirate klasični stavek IF OR z zgoraj opisano formulo COUNTIF ali ISNUMBER SEARCH.
Če želite na primer v A2 poiskati "aa" ALI "bb" in pri tem ne upoštevati velikosti črk ter vrniti "Da", če je najdeno eno ali drugo, uporabite eno od teh formul:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2)), "Yes", "")
ali
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Deluje tudi seštevanje dveh funkcij COUNTIF. V tem primeru znak plus deluje kot operator OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Da", "")
Namesto da bi v formuli trdno kodirali niza nadomestnih znakov, jih lahko vnesete v ločeni celici, na primer D2 in F2, kot je prikazano na spodnji sliki zaslona. Opazite, da sta sklicevanja na ti celici zaklenjena z znakom $, tako da se formula pravilno kopira v spodnje celice:
=IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Yes", "")
Zgornje formule so primerne za 2 delna ujemanja, če pa iščete 3 ali več delnih ujemanj, bi postale predolge. V tem primeru je smiselno, da se naloge lotite drugače:
Funkciji SEARCH v konstanto v obliki polja posredujemo več podrejencev, preštejemo vrnjena števila in preverimo, ali je rezultat večji od nič (kar bi pomenilo, da je bil najden vsaj eden od podrejencev):
=IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Da", "")
Tako boste dosegli enak rezultat z bolj kompaktno formulo:
Excelova formula IF IN z nadomestnimi znaki
Če želite preveriti, ali celica vsebuje dva ali več različnih podrejencev, je najlažje uporabiti funkcijo COUNTIFS z nadomestnimi znaki za logični preizkus.
Recimo, da želite poiskati celice v stolpcu A, ki vsebujejo "b" IN "2". Če želite to narediti, uporabite "*b*" in "*2*" za merila COUNTIFS in A2 za območje meril:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Da", "")
Drug način je uporaba formule IF AND skupaj z ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2)), "Yes", "")
Čeprav v to formulo ne vključimo nobenih nadomestnih znakov, deluje kot iskanje dveh nadomestnih nizov ("*b*" in "*2*") v isti celici.
Seveda vam nič ne preprečuje, da bi iskalne vrednosti vnesli v vnaprej določene celice, v našem primeru D2 in F2, in v formulo vnesli sklice na celice:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2)), "Yes", "")
Če raje uporabljate bolj kompaktne formule, kjer je to mogoče, vam bo morda bolj ustrezal pristop s konstanto polja. Formula IF COUNT SEARCH je zelo podobna formuli iz prejšnjega primera, ker pa se morata tokrat v A2 pojaviti oba podreza, preverimo, ali je število enako 2:
=IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Da", "")
To so glavni načini uporabe nadomestnih znakov v stavku IF v Excelu. Če poznate druge rešitve, bodo drugi uporabniki zagotovo hvaležni, če boste svoje izkušnje delili v komentarjih. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!
Praktični delovni zvezek za prenos
Primeri nadomestne formule Excel IF (.xlsx datoteka)