Excel: Als cel formulevoorbeelden bevat

  • Deel Dit
Michael Brown

De handleiding bevat een aantal "Excel if contains"-formulevoorbeelden die laten zien hoe iets in een andere kolom kan worden teruggegeven als een doelcel een vereiste waarde bevat, hoe kan worden gezocht met gedeeltelijke overeenkomst en hoe meerdere criteria kunnen worden getest met zowel OR- als AND-logica.

Een van de meest voorkomende taken in Excel is controleren of een cel een interessante waarde bevat. Wat voor waarde kan dat zijn? Gewoon een willekeurige tekst of getal, specifieke tekst, of een willekeurige waarde (geen lege cel).

Er bestaan verschillende varianten van de "Als cel bevat" formule in Excel, afhankelijk van welke waarden u precies wilt vinden. In het algemeen zult u de IF-functie gebruiken om een logische test uit te voeren, en een waarde retourneren wanneer aan de voorwaarde is voldaan (cel bevat) en/of een andere waarde wanneer niet aan de voorwaarde is voldaan (cel bevat niet). De onderstaande voorbeelden betreffen de meest voorkomende scenario's.

    Als de cel een waarde bevat, dan

    Laten we om te beginnen eens kijken hoe we cellen kunnen vinden die ook maar iets bevatten: tekst, cijfers of datums. Hiervoor gebruiken we een eenvoudige IF-formule die controleert op niet-blanco cellen.

    ALS( cel "", value_to_return , "")

    Om bijvoorbeeld in kolom B "Niet leeg" te geven als de cel van kolom A in dezelfde rij een waarde bevat, voert u de volgende formule in B2 in, en dubbelklikt u vervolgens op het kleine groene vierkantje rechtsonder om de formule naar beneden in de kolom te kopiëren:

    =IF(A2"", "Niet leeg", "")

    Het resultaat ziet er ongeveer zo uit:

    Als de cel tekst bevat, dan

    Als u alleen cellen wilt vinden met tekstwaarden zonder getallen en datums, gebruik dan IF in combinatie met de ISTEXT-functie. Hier is de algemene formule om een waarde in een andere cel terug te geven als een doelcel bevat elke tekst :

    IF(ISTEXT( cel ), value_to_return , "")

    Stel, u wilt in kolom B het woord "ja" invoegen als een cel in kolom A tekst bevat. Zet daarvoor de volgende formule in B2:

    =IF(ISTEXT(A2), "Ja", "")

    Als de cel een getal bevat, dan

    Op soortgelijke wijze kunt u cellen met numerieke waarden (getallen en datums) identificeren. Gebruik hiervoor de IF-functie in combinatie met ISNUMBER:

    IF(ISNUMBER( cel ), value_to_return , "")

    De volgende formule geeft "ja" in kolom B als een overeenkomstige cel in kolom A een getal bevat:

    =IF(ISNUMBER(A2), "Ja", "")

    Als cel specifieke tekst bevat

    Het vinden van cellen met bepaalde tekst (of getallen of data) is eenvoudig. U schrijft een gewone IF-formule die controleert of een doelcel de gewenste tekst bevat, en typt de tekst die moet worden teruggestuurd in de waarde_indien_waar argument.

    ALS( cel =" tekst ", value_to_return , "")

    Om bijvoorbeeld uit te zoeken of cel A2 "appels" bevat, gebruikt u deze formule:

    =IF(A2="appels", "Ja", "")

    Als de cel geen specifieke tekst bevat

    Als u het tegenovergestelde resultaat zoekt, d.w.z. een waarde teruggeven aan een andere kolom indien een doelcel niet de gespecificeerde tekst ("appels") bevat, doe dan een van de volgende dingen.

    Geef een lege tekenreeks ("") in de waarde_indien_waar argument, en tekst om terug te sturen in de waarde_als_vals argument:

    =IF(A2="appels", "", "Geen appels")

    Of zet de "niet gelijk aan" operator in logische_test en tekst terug te sturen in value_if_true:

    =IF(A2"appels", "Geen appels", "")

    Hoe dan ook, de formule zal dit resultaat opleveren:

    Als cel tekst bevat: hoofdlettergevoelige formule

    Om uw formule te dwingen onderscheid te maken tussen hoofdletters en kleine letters, gebruikt u de functie EXACT, die controleert of twee tekststrings exact gelijk zijn, inclusief het hoofdlettergebruik:

    =IF(EXACT(A2,"APPLES"), "Ja", "")

    U kunt ook de modeltekststring invoeren in een bepaalde cel (bijvoorbeeld in C1), de celverwijzing vastzetten met het $-teken ($C$1), en de doelcel vergelijken met die cel:

    =IF(EXACT(A2,$C$1), "Ja", "")

    Als cel specifieke tekststring bevat (gedeeltelijke overeenkomst)

    We zijn klaar met triviale taken en gaan over op meer uitdagende en interessante taken :) In dit voorbeeld zijn drie verschillende functies nodig om uit te zoeken of een bepaald teken of substring deel uitmaakt van de celinhoud:

    ALS(ISNUMBER(SEARCH(" tekst" , cel )), value_to_return ,"")

    Van binnen naar buiten werkend, is dit wat de formule doet:

    • De functie SEARCH zoekt naar een tekststring, en indien de string wordt gevonden, geeft hij de positie van het eerste teken terug, en anders de foutmelding #VALUE!
    • De functie ISNUMBER controleert of SEARCH geslaagd of mislukt is. Indien SEARCH een getal heeft opgeleverd, geeft ISNUMBER TRUE terug. Indien SEARCH een fout heeft opgeleverd, geeft ISNUMBER FALSE terug.
    • Tenslotte geeft de IF-functie de opgegeven waarde terug voor cellen met TRUE in de logische test, en anders een lege tekenreeks ("").

    En laten we nu eens kijken hoe deze algemene formule werkt in echte werkbladen.

    Als cel bepaalde tekst bevat, zet dan een waarde in een andere cel

    Stel, u hebt een lijst met orders in kolom A en u wilt orders vinden met een specifieke identificatiecode, bijvoorbeeld "A-". Dat kan met deze formule:

    =IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")

    In plaats van de tekenreeks hard te coderen in de formule, kunt u hem invoeren in een aparte cel (E1), en naar die cel verwijzen in uw formule:

    =IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")

    Om de formule correct te laten werken, moet u het adres van de cel met de tekenreeks vergrendelen met het $-teken (absolute celverwijzing).

    Als cel specifieke tekst bevat, kopieer deze dan naar een andere kolom

    Als u de inhoud van de geldige cellen ergens anders naartoe wilt kopiëren, hoeft u alleen maar het adres van de geëvalueerde cel (A2) in het venster waarde_indien_waar argument:

    =IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")

    Het onderstaande screenshot toont de resultaten:

    Als cel specifieke tekst bevat: hoofdlettergevoelige formule

    In beide bovenstaande voorbeelden zijn de formules hoofdletterongevoelig. In situaties waarin u werkt met hoofdlettergevoelige gegevens, gebruikt u de functie FIND in plaats van SEARCH om onderscheid te maken tussen hoofdletters en kleine letters.

    De volgende formule identificeert bijvoorbeeld alleen orders met hoofdletter "A-" en negeert kleine letters "a-".

    =IF(ISNUMBER(FIND("A-",A2)),"Valid","")

    Als cel een van de vele tekststrings bevat (OR-logica)

    Gebruik een van de volgende formules om cellen te identificeren die ten minste één van de vele dingen bevatten die u zoekt.

    IF OF ISNUMBER ZOEKEN formule

    De meest voor de hand liggende aanpak zou zijn om elke substring afzonderlijk te controleren en de OR-functie TRUE te laten teruggeven in de logische test van de IF-formule als ten minste één substring wordt gevonden:

    ALS(OF(ISNUMBER(SEARCH(" string1 ", cel )), ISNUMBER(SEARCH(" string2 ", cel ))), value_to_return , "")

    Stel dat u in kolom A een lijst met SKU's hebt en u wilt die SKU's vinden die "jurk" of "rok" bevatten, dan kunt u dat met deze formule doen:

    =IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2)),"Valid ","")

    De formule werkt vrij goed voor een paar items, maar het is zeker niet de manier om te gaan als u wilt controleren op veel dingen. In dit geval zou een betere aanpak het gebruik van de SUMPRODUCT-functie zijn, zoals in het volgende voorbeeld.

    SUMPRODUCT ISNUMBER ZOEKEN formule

    Als u te maken hebt met meerdere tekststrings, zou het zoeken naar elke string afzonderlijk uw formule te lang en moeilijk leesbaar maken. Een elegantere oplossing zou zijn de combinatie ISNUMBER ZOEKEN in te bouwen in de SUMPRODUCT-functie, en te kijken of het resultaat groter is dan nul:

    SUMPRODUCT(--ISNUMMER(ZOEK( strings , cel )))>0

    Als u bijvoorbeeld wilt weten of A2 een van de woorden bevat die in de cellen D2:D4 zijn ingevoerd, gebruikt u deze formule:

    =SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0

    U kunt ook een naambereik maken dat de te zoeken tekenreeksen bevat, of de woorden rechtstreeks in de formule invoeren:

    =SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0

    Hoe dan ook, het resultaat ziet er ongeveer zo uit:

    Om de uitvoer gebruiksvriendelijker te maken, kunt u de bovenstaande formule in de IF-functie nestelen en uw eigen tekst teruggeven in plaats van de waarden TRUE/FALSE:

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")

    Hoe deze formule werkt

    In de kern gebruikt u ISNUMBER samen met SEARCH zoals uitgelegd in het vorige voorbeeld. In dit geval worden de zoekresultaten weergegeven in de vorm van een array zoals {TRUE;FALSE;FALSE}. Als een cel ten minste één van de gespecificeerde substrings bevat, staat er TRUE in de array. De dubbele unary operator (--) coërt de TRUE / FALSE waarden naar respectievelijk 1 en 0, en levert een array op zoals{1;0;0}. Tenslotte telt de SUMPRODUCT-functie de getallen op, en halen we de cellen eruit waar het resultaat groter is dan nul.

    Als cel meerdere strings bevat (AND-logica)

    In situaties waarin u cellen wilt vinden die alle opgegeven tekstreeksen bevatten, gebruikt u de reeds bekende combinatie ISNUMBER SEARCH in combinatie met IF AND:

    ALS(EN(ISNUMBER(SEARCH(" string1 ", cel )), ISNUMBER(SEARCH(" string2 ", cel ))), value_to_return ,"")

    Met deze formule kunt u bijvoorbeeld SKU's vinden die zowel "jurk" als "blauw" bevatten:

    =IF(AND(ISNUMBER(ZOEK("jurk",A2)),ISNUMBER(ZOEK("blauw",A2)),"Geldig","")

    Of u kunt de tekenreeksen in afzonderlijke cellen typen en in uw formule naar die cellen verwijzen:

    =IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2)),"Valid ","")

    Als alternatieve oplossing kunt u de voorkomens van elke tekenreeks tellen en controleren of elke telling groter is dan nul:

    =IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid",")

    Het resultaat is precies zoals in de schermafbeelding hierboven.

    Hoe verschillende resultaten geven op basis van de celwaarde

    Als u elke cel in de doelkolom wilt vergelijken met een andere lijst van items en voor elke overeenkomst een andere waarde wilt teruggeven, gebruik dan een van de volgende benaderingen.

    Geneste IF's

    De logica van de geneste IF-formule is als volgt: u gebruikt een aparte IF-functie om elke voorwaarde te testen, en geeft verschillende waarden terug, afhankelijk van de resultaten van die tests.

    ALS( cel =" opzoekingstekst1 ", " terug _ tekst1 ", IF( cel =" opzoekingstekst2 ", " terug _ tekst2 ", IF( cel =" opzoekingstekst3 ", " terug _ tekst3 ", "")))

    Stel, u hebt een lijst met artikelen in kolom A en u wilt hun afkortingen in kolom B hebben:

    =IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))

    Voor volledige details over de syntaxis en logica van geneste IF, zie Excel geneste IF - meerdere voorwaarden in één formule.

    Opzoekformule

    Als u een compactere en beter te begrijpen formule zoekt, gebruik dan de functie LOOKUP, waarbij de lookup- en returnwaarden worden geleverd als verticale matrixconstanten:

    LOOKUP( cel , {" opzoekingstekst1 ";" opzoekingstekst2 ";" opzoekingstekst3 ";...}, {" terug _ tekst1 ";" terug _ tekst2 ";" terug _ tekst3 ";...})

    Voor nauwkeurige resultaten moet u de opzoekwaarden vermelden in alfabetische volgorde van A tot Z.

    =LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})

    Vergeleken met geneste IF's heeft de Lookup-formule nog een voordeel - hij begrijpt de jokertekens en kan daarom gedeeltelijke overeenkomsten identificeren.

    Als kolom A bijvoorbeeld een paar soorten bananen bevat, kunt u "*banaan*" opzoeken en dezelfde afkorting ("B") voor al die cellen terugkrijgen:

    =LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})

    Voor meer informatie, zie Opzoekformule als alternatief voor geneste IF's.

    Vlookup-formule

    Wanneer u met een variabele gegevensreeks werkt, kan het handiger zijn om een lijst van overeenkomsten in afzonderlijke cellen in te voeren en deze op te vragen met behulp van een Vlookup-formule, bijv:

    =VLOOKUP(A2, $D$2:$E$5, 2,FALSE )

    Voor meer informatie, zie Excel VLOOKUP tutorial voor beginners.

    Dit is hoe u controleert of een cel een waarde of specifieke tekst bevat in Excel. Volgende week gaan we verder kijken naar Excel's Als cel bevat formules en leren we hoe u relevante cellen kunt tellen of optellen, hele rijen met die cellen kunt kopiëren of verwijderen, en meer. Blijf kijken!

    Praktijk werkboek

    Excel Als cel bevat - formulevoorbeelden (.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.