Excel IF-erklæring til delvis tekstmatch (wildcard)

  • Del Dette
Michael Brown

Prøver du at oprette en IF-angivelse med jokertekst, men det mislykkes hver gang? Problemet ligger ikke i din formel, men i selve funktionen - Excel IF understøtter ikke jokertegn. Der er dog en måde at få det til at fungere for delvis tekstmatch, og denne vejledning vil lære dig hvordan.

Når du ønsker at udføre delvis eller uklar matchning i Excel, er den mest indlysende løsning at bruge jokertegn. Men hvad nu, hvis en bestemt funktion, som du skal bruge, ikke understøtter jokertegn? Desværre er Excel IF en af disse funktioner. Dette er især skuffende, når man tænker på, at andre "betingede" funktioner som COUNTIF, SUMIF og AVERAGEIFS fungerer perfekt med jokertegn.

Heldigvis er det ikke den forhindring, der kan stoppe en kreativ Excel-bruger :) Ved at kombinere IF med andre funktioner kan du tvinge den til at evaluere et delvist match og få et godt alternativ til en Excel IF-jokertegnsformel.

    Hvorfor Excel IF-funktion med jokertegn ikke virker

    Hvis du i nedenstående eksempeltabel antager, at du vil kontrollere, om ID'erne i den første kolonne indeholder bogstavet "A", vises "Ja" i kolonne B, hvis det er tilfældet, vises "Nej".

    Det virker som om det ville være en nem løsning at inkludere jokertekst i den logiske test:

    =IF(A2="*a*", "Ja", "Nej")

    Men det virker desværre ikke. Formlen returnerer "Nej" for alle cellerne, selv dem, der indeholder "A":

    Hvorfor mislykkes en IF-angivelse med jokertegn? Det ser ud til, at Excel ikke genkender jokertegn, der anvendes sammen med et lighedstegn eller andre logiske operatorer. Hvis du ser nærmere på listen over funktioner, der understøtter jokertegn, vil du bemærke, at deres syntaks forudsætter, at en jokertegnstekst vises direkte i et argument som dette:

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

    Excel IF indeholder delvis tekst

    Nu hvor du kender årsagen til, at en IF-formel med jokertegn ikke virker, skal vi prøve at finde ud af, hvordan vi får den til at virke. Til dette formål indlejrer vi simpelthen en funktion, der accepterer jokertegn, i den logiske test af IF, nemlig funktionen COUNTIF:

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

    Med denne fremgangsmåde har IF ingen problemer med at forstå jokertegn og identificerer uden problemer de celler, der indeholder enten "A" eller "a" (da COUNTIF ikke er stempelfølsom):

    =IF(COUNTIF(A2, "*a*"), "Ja", "Nej")

    Denne formel går til B2 eller en hvilken som helst anden celle i række 2, og du kan trække den ned til så mange celler, som du har brug for:

    Denne løsning kan også bruges til at lokalisere strenge med et bestemt mønster Hvis det antages, at kun de ID'er, der består af 2 grupper af 2 tegn adskilt med en bindestreg, er gyldige, kan du bruge jokertegnstrengen "??-????" til at identificere dem:

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

    Sådan fungerer denne formel:

    Til den logiske test af IF bruger vi funktionen COUNTIF, der tæller antallet af celler, der matcher den angivne jokertegnsstreng. Da kriterieområdet er en enkelt celle (A2), er resultatet altid 1 (match er fundet) eller 0 (match er ikke fundet). Da 1 svarer til TRUE og 0 til FALSE, returnerer formlen "Valid" (value_if_true), når tællingen er 1, og en tom streng (value_if_false), når tællingen er 1, og en tom streng (value_if_false), nårtæller er 0.

    IF ISNUMBER SØGNING formular til delvise match

    En anden måde at tvinge Excel IF til at fungere for delvis tekstmatchning er at inkludere enten FIND- eller SEARCH-funktionen i den logiske test. Forskellen er, at FIND er case-sensitiv, mens SEARCH ikke er det.

    Så afhængigt af, om du vil behandle små og store bogstaver som samme eller forskellige tegn, vil en af disse formler fungere fint:

    Ikke-under hensyntagen til store og små bogstaver formel for delvis matchning:

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

    Skrivefølsom formel for delvis match:

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

    Da begge funktioner er designet til at udføre et match af typen "celle indeholder", er der ikke rigtig brug for jokertegn i dette tilfælde.

    For at registrere ID'er, der indeholder "A" eller "a", er formlen f.eks:

    =IF(ISNUMBER(SEARCH("A", A2))), "Ja", "Nej")

    Hvis du kun vil søge efter et stort "A" og ignorere "a", er formlen:

    =IF(ISNUMBER(FIND("A", A2))), "Ja", "Nej")

    I B6 i skærmbilledet nedenfor kan du se forskellen i resultatet:

    Sådan fungerer denne formel:

    Kernen i formlen er en kombination af ISNUMBER og SEARCH (eller FIND):

    ISNUMBER(SEARCH("A", A2)))

    SEARCH-funktionen leder efter den angivne tekst ("A" i dette eksempel) og returnerer dens position i en streng i A2. Hvis teksten ikke findes, returneres en #VALUE-fejl. Da både SEARCH og FIND er designet til at udføre et match af typen "celle indeholder", er der ikke rigtig brug for jokertegn i dette tilfælde.

    Funktionen ISNUMBER konverterer et tal til TRUE og enhver anden værdi, herunder fejl, til FALSE. Den logiske værdi går direkte til den logiske test af IF. I vores tilfælde indeholder A2 "A", så ISNUMBER returnerer TRUE:

    IF(TRUE, "Ja", "Nej")

    Som resultat returnerer IF den værdi, der er fastsat for value_if_true argumentet, som er "Ja".

    Excel IF OR-erklæring med jokertegn

    Hvis du skal identificere celler, der indeholder en af jokertekststrengene, kan du i dette tilfælde kombinere den klassiske IF OR-angivelse med formlen COUNTIF eller ISNUMBER SEARCH, som vi har omtalt ovenfor.

    Hvis du f.eks. vil søge efter "aa" ELLER "bb" i A2 uden at tage hensyn til bogstaver og returnere "Ja", hvis en af dem findes, skal du bruge en af disse formler:

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

    eller

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

    Det virker også at lægge to COUNTIF-funktioner sammen. I dette tilfælde fungerer plustegnet som OR-operatoren:

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

    I stedet for at indtaste wildcard-strenge i formlen kan du indtaste dem i separate celler, f.eks. D2 og F2, som vist i skærmbilledet nedenfor. Bemærk, at disse cellehenvisninger er låst med $-tegnet, så formlen kopieres korrekt til de nedenstående celler:

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

    Ovenstående formler fungerer godt for 2 delvise matches, men hvis du søger efter 3 eller flere, bliver de for lange. I dette tilfælde er det rimeligt at gribe opgaven anderledes an:

    Giv flere understrenge til SEARCH-funktionen i en arraykonstant, tæl de returnerede tal, og kontroller, om resultatet er større end nul (hvilket betyder, at mindst en af understrengene er fundet):

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

    På denne måde får du præcis det samme resultat med en mere kompakt formel:

    Excel IF AND-formel med jokertegn

    Når du vil kontrollere, om en celle indeholder to eller flere forskellige understrenge, er det nemmest at bruge funktionen COUNTIFS med jokertegn til den logiske test.

    Hvis du vil finde celler i kolonne A, der både indeholder "b" OG "2", skal du bruge "*b*" og "*2*" som kriterier for COUNTIFS og A2 som kriterieområde:

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

    En anden måde er at bruge IF AND-formlen sammen med ISNUMBER SEARCH:

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

    Selv om vi ikke medtager nogen jokertegn i denne formel, fungerer det som at søge efter to jokertegnstrenge ("*b*" og "*2*") i den samme celle.

    Der er naturligvis intet, der forhindrer dig i at indtaste søgeværdierne i foruddefinerede celler, D2 og F2 i vores tilfælde, og angive cellehenvisningerne til formlen:

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

    Hvis du foretrækker at bruge mere kompakte formler, hvor det er muligt, kan du måske bedre lide arraykonstantmetoden. IF COUNT SEARCH-formlen er meget lig det foregående eksempel, men da begge understrenge denne gang skal optræde i A2, kontrollerer vi, om tallet er lig med 2:

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

    Dette er de vigtigste metoder til at bruge wildcard i IF-angivelse i Excel. Hvis du kender andre løsninger, vil andre brugere helt sikkert sætte pris på at dele din erfaring i kommentarer. Jeg takker dig for at læse og håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    Eksempler på Excel IF jokertegnsformler (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.