Excel IF-instructie voor gedeeltelijke tekstmatch (jokerteken)

  • Deel Dit
Michael Brown

Probeert u een IF statement te maken met jokertekens, maar het lukt telkens niet? Het probleem ligt niet in uw formule maar in de functie zelf - Excel IF ondersteunt geen jokertekens. Er is echter een manier om het te laten werken voor gedeeltelijke tekstmatch, en deze tutorial leert u hoe.

Wanneer u in Excel gedeeltelijke of vage overeenkomsten wilt uitvoeren, is de meest voor de hand liggende oplossing het gebruik van jokertekens. Maar wat als een specifieke functie die u moet gebruiken geen jokertekens ondersteunt? Helaas is Excel IF één van die functies. Dit is vooral teleurstellend omdat andere "voorwaardelijke" functies zoals COUNTIF, SUMIF en AVERAGEIFS prima werken met jokertekens.

Gelukkig is dit niet het obstakel dat een creatieve Excel-gebruiker kan tegenhouden :) Door IF te combineren met andere functies, kunt u dwingen een gedeeltelijke overeenkomst te evalueren en krijgt u een leuk alternatief voor een Excel IF-jokertekenformule.

    Waarom Excel IF functie met jokerteken niet werkt

    Stel dat u in de onderstaande voorbeeldtabel wilt controleren of de ID's in de eerste kolom de letter "A" bevatten. Indien gevonden - toon "Ja" in kolom B, indien niet - toon "Nee".

    Het lijkt erop dat het opnemen van jokertekst in de logische test een gemakkelijke oplossing zou zijn:

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

    Maar helaas werkt het niet. De formule geeft "Nee" voor alle cellen, zelfs die met "A":

    Waarom mislukt een IF statement met jokerteken? Op het eerste gezicht herkent Excel geen jokertekens in combinatie met een gelijkheidsteken of andere logische operatoren. Als u de lijst met functies die jokertekens ondersteunen nader bekijkt, zult u zien dat de syntaxis ervan ervan uitgaat dat een jokertekst rechtstreeks in een argument voorkomt, zoals dit:

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

    Excel IF bevat gedeeltelijke tekst

    Nu u de reden kent waarom een IF-formule met jokertekens mislukt, laten we proberen uit te vinden hoe we het wel werkend kunnen krijgen. Daartoe voegen we eenvoudigweg een functie in die jokertekens accepteert in de logische test van IF, namelijk de functie COUNTIF:

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

    Met deze aanpak heeft IF geen problemen met het begrijpen van jokertekens en identificeert het feilloos de cellen die "A" of "a" bevatten (aangezien COUNTIF niet hoofdlettergevoelig is):

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

    Deze formule gaat naar B2, of elke andere cel in rij 2, en dan kunt u hem verslepen naar zoveel cellen als nodig:

    Deze oplossing kan ook worden gebruikt om reeksen van een specifiek patroon Ervan uitgaande dat alleen de ID's die bestaan uit 2 groepen van 2 tekens gescheiden door een koppelteken geldig zijn, kunt u de jokertekenreeks "??-??" gebruiken om ze te identificeren:

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

    Hoe deze formule werkt:

    Voor de logische test van IF gebruiken we de functie COUNTIF, die het aantal cellen telt dat overeenkomt met de opgegeven jokertekenreeks. Aangezien het criteriabereik een enkele cel is (A2), is het resultaat altijd 1 (overeenkomst is gevonden) of 0 (overeenkomst is niet gevonden). Aangezien 1 gelijk is aan TRUE en 0 aan FALSE, geeft de formule "Valid" (waarde_if_true) terug wanneer de telling 1 is en een lege tekenreeks (waarde_if_false) wanneer detelling is 0.

    IF ISNUMBER ZOEKEN formule voor gedeeltelijke overeenkomsten

    Een andere manier om Excel IF te laten werken voor een gedeeltelijke tekstovereenkomst is door de functie FIND of SEARCH op te nemen in de logische test. Het verschil is dat FIND hoofdlettergevoelig is en SEARCH niet.

    Dus, afhankelijk van of u kleine letters en hoofdletters als dezelfde of als verschillende tekens wilt behandelen, zal één van deze formules goed werken:

    Hoofdlettergevoelig formule voor gedeeltelijke overeenstemming:

    ALS(ISNUMBER(SEARCH(" tekst ", cel )), value_if_true, value_if_false)

    Hoofdlettergevoelig formule voor gedeeltelijke overeenstemming:

    ALS(ISNUMBER(FIND(" tekst ", cel )), value_if_true, value_if_false)

    Aangezien beide functies ontworpen zijn om een "cel bevat" overeenkomst uit te voeren, zijn jokertekens in dit geval niet echt nodig.

    Om bijvoorbeeld ID's te detecteren die "A" of "a" bevatten, is de formule:

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

    Om alleen naar een hoofdletter "A" te zoeken en "a" te negeren, is de formule:

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

    In B6 in onderstaande schermafbeelding kunt u het verschil in resultaat zien:

    Hoe deze formule werkt:

    De kern van de formule is een combinatie van ISNUMBER en SEARCH (of FIND):

    ISNUMBER(SEARCH("A", A2))

    De SEARCH-functie zoekt naar de opgegeven tekst ("A" in dit voorbeeld) en geeft de positie ervan terug binnen een string in A2. Indien de tekst niet wordt gevonden, wordt een #VALUE-fout geretourneerd. Aangezien zowel SEARCH als FIND ontworpen zijn om een overeenkomst van het type "cel bevat" uit te voeren, zijn jokertekens in dit geval niet echt nodig.

    De functie ISNUMBER converteert een getal naar TRUE en elke andere waarde inclusief fout naar FALSE. De logische waarde gaat direct naar de logische test van IF. In ons geval bevat A2 "A", dus ISNUMBER geeft TRUE:

    IF(TRUE, "Ja", "Nee")

    Als resultaat geeft IF de waarde terug die is ingesteld voor de waarde_indien_waar argument, dat "Ja" is.

    Excel IF OR-instructie met jokertekens

    Moet u cellen identificeren die een van de wildcard-tekstreeksen bevatten? In dat geval kunt u de klassieke IF OR-verklaring combineren met de hierboven besproken COUNTIF- of ISNUMBER ZOEK-formule.

    Om bijvoorbeeld te zoeken naar "aa" OF "bb" in A2 zonder rekening te houden met de hoofdletters en "Ja" terug te geven als een van beide wordt gevonden, gebruikt u een van deze formules:

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

    of

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

    Het optellen van twee COUNTIF-functies werkt ook. In dit geval werkt het plusteken als de OR-operator:

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

    In plaats van jokertekens hard te coderen in de formule, kunt u ze invoeren in aparte cellen, bijvoorbeeld D2 en F2, zoals in de onderstaande schermafbeelding. Merk op dat deze celverwijzingen zijn vergrendeld met het $-teken, zodat de formule correct wordt gekopieerd naar de onderstaande cellen:

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

    De bovenstaande formules werken goed voor 2 gedeeltelijke overeenkomsten, maar als u naar 3 of meer zoekt, worden ze te lang. In dat geval is het logisch om de taak anders aan te pakken:

    Geef meerdere substrings aan de SEARCH-functie in een arrayconstante, tel de teruggegeven getallen, en controleer of het resultaat groter is dan nul (wat zou betekenen dat ten minste één van de substrings is gevonden):

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

    Zo krijgt u precies hetzelfde resultaat met een compactere formule:

    Excel IF EN formule met jokertekens

    Wanneer u wilt controleren of een cel twee of meer verschillende substrings bevat, is de eenvoudigste manier het gebruik van de functie COUNTIFS met jokertekens voor de logische test.

    Stel dat u cellen in kolom A wilt vinden die zowel "b" EN "2" bevatten. Gebruik dan "*b*" en "*2*" voor de criteria van COUNTIFS en A2 voor het criteriabereik:

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

    Een andere manier is het gebruik van de formule IF AND in combinatie met ISNUMBER SEARCH:

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

    Hoewel we in deze formule geen jokertekens opnemen, werkt het als het zoeken naar twee jokertekens ("*b*" en "*2*") in dezelfde cel.

    Natuurlijk belet niets u om de zoekwaarden in te voeren in vooraf gedefinieerde cellen, D2 en F2 in ons geval, en de celverwijzingen mee te geven aan de formule:

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

    Als u liever waar mogelijk compactere formules gebruikt, dan vindt u de arrayconstante-benadering misschien beter. De IF COUNT SEARCH-formule lijkt sterk op het vorige voorbeeld, maar omdat deze keer beide substrings in A2 moeten voorkomen, controleren we of de telling gelijk is aan 2:

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

    Dit zijn de belangrijkste methoden voor het gebruik van jokertekens in IF-statements in Excel. Als u andere oplossingen kent, zullen andere gebruikers het zeker op prijs stellen als u uw ervaring deelt in de commentaren. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!

    Praktijk werkboek om te downloaden

    Excel IF wildcard formule voorbeelden (.xlsx bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.