Excel IF-setning for delvis tekstmatch (jokertegn)

  • Dele Denne
Michael Brown

Prøver du å bygge en IF-setning med jokertegn, men den mislykkes hver gang? Problemet ligger ikke i formelen din, men i selve funksjonen - Excel IF støtter ikke jokertegn. Det er imidlertid en måte å få det til å fungere for delvis tekstmatch, og denne opplæringen vil lære deg hvordan.

Når du ønsker å utføre delvis eller uklar matching i Excel, er den mest åpenbare løsningen å bruke jokertegn. Men hva om en bestemt funksjon du må bruke ikke støtter jokertegn? Dessverre er Excel IF en av slike funksjoner. Dette er spesielt skuffende med tanke på at andre "betingede" funksjoner som COUNTIF, SUMIF og AVERAGEIFS fungerer utmerket med jokertegn.

Heldigvis er det ikke hindringen som kan stoppe en kreativ Excel-bruker :) Ved å kombinere IF med andre funksjoner kan du tvinge den til å evaluere et delvis samsvar og få et fint alternativ til en Excel IF-jokertegnformel.

    Hvorfor Excel IF-funksjon med jokertegn ikke fungerer

    I eksempeltabellen nedenfor, forutsatt at du vil sjekke om ID-ene i den første kolonnen inneholder bokstaven "A". Hvis funnet - vis "Ja" i kolonne B, hvis ikke - vis "Nei".

    Det virker som om det er en enkel løsning å inkludere jokertegn i den logiske testen:

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

    Men det fungerer dessverre ikke. Formelen returnerer "Nei" for alle cellene, også de som inneholder "A":

    Hvorforen jokertegn IF-setning mislykkes? Fra alle opptredener gjenkjenner ikke Excel jokertegn som brukes med likhetstegn eller andre logiske operatorer. Hvis du ser nærmere på listen over funksjoner som støtter jokertegn, vil du legge merke til at syntaksen deres antar at en jokertegntekst vises direkte i et argument som dette:

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

    Excel IF inneholder delvis tekst

    Nå som du vet årsaken til at en jokertegn IF-formel mislykkes, la oss prøve å finne ut hvordan vi får den til å fungere. For dette vil vi ganske enkelt bygge inn en funksjon som godtar jokertegn i den logiske testen av IF, nemlig COUNTIF-funksjonen:

    IF(COUNTIF( celle, "* tekst* "), value_if_true, value_if_false)

    Med denne tilnærmingen har IF ingen problemer med å forstå jokertegn og identifiserer feilfritt cellene som inneholder enten "A" eller "a" (siden COUNTIF ikke skiller mellom store og små bokstaver):

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

    Denne formelen går til B2, eller en hvilken som helst annen celle i rad 2, og deretter kan du dra den ned til så mange celler du trenger:

    Denne løsningen kan også brukes til å finne strenger med et spesifikt mønster . Forutsatt at bare ID-ene som består av 2 grupper med 2 tegn atskilt med en bindestrek er gyldige, kan du bruke "??-??" jokertegnstreng for å identifisere dem:

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

    Hvordan denne formelen fungerer:

    For den logiske testen av HVIS bruker vi COUNTIF-funksjonen som teller antall celler som samsvarer med det angitte jokertegnetstreng. Siden kriterieområdet er en enkelt celle (A2), er resultatet alltid 1 (treff er funnet) eller 0 (treff ble ikke funnet). Gitt at 1 tilsvarer SANN og 0 til USANT, returnerer formelen "Gyldig" (value_if_true) når antallet er 1 og en tom streng (value_if_false) når antallet er 0.

    IF ISNUMBER SØK formel for delvis matcher

    En annen måte å tvinge Excel IF til å fungere for delvis tekstmatch er å inkludere enten FINN- eller SEARCH-funksjonen i den logiske testen. Forskjellen er at FIND skiller mellom store og små bokstaver mens SEARCH ikke er det.

    Så, avhengig av om du vil behandle små og store bokstaver som samme eller forskjellige tegn, vil en av disse formlene fungere som en godbit:

    Stilling uten store og små bokstaver formel for delvis samsvar:

    IF(ISNUMBER(SØK(" tekst", celle)), value_if_true, value_if_false )

    Stillingssensitiv formel for delvis samsvar:

    IF(ISNUMBER(FINN(" tekst", celle)), value_if_true, value_if_false )

    Siden begge funksjonene er utformet for å utføre en "celle inneholder"-type samsvar, er jokertegn egentlig ikke nødvendig i dette tilfellet.

    For eksempel for å oppdage IDer som inneholder "A" eller "a" , formelen er:

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

    For bare å søke etter stor "A" og ignorere "a", er formelen:

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

    I B6 i skjermbildet nedenfor kan du se forskjellen i resultatet:

    Hvordan denne formelen fungerer:

    På hjertet avformelen, det er en kombinasjon av ISNUMBER og SØK (eller FINN):

    ISNUMBER(SEARCH("A", A2))

    SØK-funksjonen ser etter den angitte teksten ("A" i dette eksemplet) og returnerer sin posisjon innenfor en streng i A2. Hvis teksten ikke blir funnet, returneres en #VALUE-feil. Siden både SEARCH og FIND er utformet for å utføre en "celle inneholder"-type samsvar, er jokertegn egentlig ikke nødvendig i dette tilfellet.

    ISNUMBER-funksjonen konverterer et tall til TRUE og enhver annen verdi inkludert feil til FALSE . Den logiske verdien går direkte til den logiske testen av IF. I vårt tilfelle inneholder A2 "A", så ISNUMBER returnerer TRUE:

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

    Som et resultat returnerer IF verdien satt for value_if_true -argumentet, som er "Ja".

    Excel IF OR-setning med jokertegn

    Trenger du å identifisere celler som inneholder en av jokertegntekststrengene? I dette tilfellet kan du kombinere den klassiske IF OR-setningen med COUNTIF- eller ISNUMBERSEARCH-formelen diskutert ovenfor.

    For eksempel, for å søke etter "aa" ELLER "bb" i A2, ignorere store og små bokstaver og returnere " Ja" hvis en av dem er funnet, bruk en av disse formlene:

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

    eller

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

    Å legge til to COUNTIF-funksjoner vil også fungere. I dette tilfellet fungerer plusstegnet som OR-operatoren:

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

    I stedet for å hardkode jokertegnstrenger i formelen, kan du legge dem inn i separate celler, si D2 og F2, som vist i skjermbildet nedenfor. Vær oppmerksom på at dissecellereferanser er låst med $-tegnet slik at formelen kopieres riktig til cellene nedenfor:

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

    Formlene ovenfor fungerer bra for 2 delvise treff , men hvis du søker etter 3 eller flere, vil de bli for lange. I dette tilfellet er det grunn til å tilnærme oppgaven annerledes:

    Legg til flere delstrenger til SEARCH-funksjonen i en matrisekonstant, tell de returnerte tallene og sjekk om resultatet er større enn null (som vil bety at minst én av understrengene hvis funnet):

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

    På denne måten vil du få nøyaktig det samme resultatet med en mer kompakt formel:

    Excel IF AND formel med jokertegn

    Når du vil sjekke om en celle inneholder to eller flere forskjellige delstrenger, er den enkleste måten å bruke COUNTIFS-funksjonen med jokertegn for den logiske testen.

    Anta at du vil finne celler i kolonne A som inneholder både "b" OG "2". For å få det gjort, bruk "*b*" og "*2*" for COUNTIFS sine kriterier og A2 for kriterieområdet:

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

    En annen måte er å bruke HVIS OG-formelen sammen med ISNUMBER SEARCH:

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

    Selv om vi ikke inkluderer noen jokertegn i denne formelen, fungerer det som å søke etter to jokertegnstrenger ("*b*" og "*2*" ) i samme celle.

    Selvfølgelig er det ingenting som hindrer deg i å angi søkeverdiene i forhåndsdefinerte celler, D2 og F2 i vårt tilfelle, og oppgicellen refererer til formelen:

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

    Hvis du foretrekker å bruke mer kompakte formler der det er mulig, kan det hende du liker array-konstant-tilnærmingen bedre. IF COUNT SEARCH-formelen er veldig lik i forrige eksempel, men fordi begge understrengene denne gangen må vises i A2, sjekker vi om antallet er lik 2:

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

    Dette er hovedmetodene for å bruke jokertegn i IF-setningen i Excel. Hvis du kjenner til andre løsninger, vil andre brukere sikkert sette pris på om du deler opplevelsen din i kommentarer. Jeg takker for at du leste og håper å se deg på bloggen vår neste uke!

    Øvningsarbeidsbok for nedlasting

    Excel IF-jokertegnformeleksempler (.xlsx-fil)

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.