Inhoudsopgave
De handleiding legt de syntaxis uit van de Excel functies ZOEKEN en ZOEKEN en geeft formulevoorbeelden van geavanceerd niet-triviaal gebruik.
In het vorige artikel hebben we de basisbeginselen van het dialoogvenster Zoeken en vervangen van Excel behandeld. In veel situaties wilt u echter dat Excel automatisch gegevens vindt en uit andere cellen haalt op basis van uw criteria. Laten we daarom eens nader bekijken wat de zoekfuncties van Excel te bieden hebben.
Excel zoekfunctie
De functie FIND in Excel wordt gebruikt om de positie van een specifiek teken of substring in een tekststring terug te vinden.
De syntaxis van de Excel-zoekfunctie is als volgt:
FIND(find_text, within_text, [start_num])De eerste 2 argumenten zijn verplicht, de laatste is optioneel.
- Zoek_tekst - het teken of de substring die u wilt vinden.
- Binnen_tekst - de tekenreeks waarin moet worden gezocht. Gewoonlijk wordt deze als een celverwijzing opgegeven, maar u kunt de tekenreeks ook rechtstreeks in de formule typen.
- Start_num - een optioneel argument dat specificeert vanaf welk teken de zoekopdracht moet beginnen. Indien weggelaten, begint de zoekopdracht vanaf het eerste teken van de within_text string.
Indien de FIND-functie het teken/de tekens van de find_text niet vindt, wordt een #VALUE! foutmelding teruggezonden.
Bijvoorbeeld de formule =FIND("d", "find")
geeft 4 omdat "d" de 4e letter is in het woord " vind ". De formule =FIND("a", "find")
geeft een foutmelding omdat er geen "a" in " vind ".
Excel FIND functie - dingen om te onthouden!
Om een FIND-formule in Excel correct te gebruiken, moet u de volgende eenvoudige feiten in gedachten houden:
- De FIND-functie is hoofdlettergevoelig Als u een hoofdlettergevoelige overeenkomst zoekt, gebruikt u de functie ZOEKEN.
- De FIND-functie in Excel staat het gebruik van jokertekens .
- Als het argument find_text meerdere tekens bevat, geeft de FIND-functie de positie van de eerste karakter Bijvoorbeeld, de formule FIND("ap","happy") geeft 2 omdat "a" de tweede letter is in het woord "happy".
- Als within_text bevat verschillende gebeurtenissen bijvoorbeeld FIND("l", "hello") levert 3 op, wat de positie is van het eerste "l"-teken in het woord "hello".
- Als find_text een lege tekenreeks "", retourneert de Excel FIND-formule het eerste teken in de zoekreeks.
- De Excel FIND-functie geeft de #FOUT! als een van de volgende zaken zich voordoet:
- Find_text bestaat niet in within_text.
- Start_num bevat meer tekens dan within_text.
- Start_num is 0 (nul) of een negatief getal.
Excel ZOEKEN functie
De SEARCH-functie in Excel lijkt sterk op FIND in die zin dat zij ook de locatie van een substring in een tekststring teruggeeft. De syntaxis en argumenten zijn vergelijkbaar met die van FIND:
SEARCH(find_text, within_text, [start_num])In tegenstelling tot ZOEKEN is de functie ZOEKEN hoofdletterongevoelig en staat het gebruik van jokertekens toe, zoals in het volgende voorbeeld.
En hier zijn een paar basis Excel ZOEK formules:
=SEARCH("market", "supermarket")
geeft 6 omdat de substring "markt" begint bij het 6e teken van het woord "supermarkt".
=SEARCH("e", "Excel")
geeft 1 omdat "e" het eerste teken is in het woord "Excel", waarbij het geval wordt genegeerd.
Net als de ZOEK-functie van Excel geeft de functie #VALUE! de foutmelding indien:
- De waarde van het argument find_text is niet gevonden.
- Het argument start_num is groter dan de lengte van within_text.
- Start_num is gelijk aan of kleiner dan nul.
Verderop in deze handleiding vindt u nog enkele zinvolle formulevoorbeelden die laten zien hoe u de SEARCH-functie in Excel-werkbladen kunt gebruiken.
Excel ZOEKEN vs. Excel ZOEKEN
Zoals reeds vermeld, lijken de functies ZOEKEN en ZOEKEN in Excel sterk op elkaar wat betreft syntaxis en gebruik. Er zijn echter een paar verschillen.
1. Hoofdlettergevoelig ZOEKEN versus hoofdletterongevoelig ZOEKEN
Het meest essentiële verschil tussen de Excel SEARCH en FIND functies is dat SEARCH hoofdlettergevoelig is, terwijl FIND hoofdlettergevoelig is.
Bijvoorbeeld, SEARCH("e", "Excel") levert 1 op omdat het de hoofdletter "E" negeert, terwijl FIND("e", "Excel") 4 oplevert omdat het de hoofdletter onthoudt.
2. Zoeken met jokertekens
In tegenstelling tot FIND, accepteert de Excel SEARCH-functie jokertekens in het argument find_text:
- Een vraagteken (?) komt overeen met één teken, en
- Een asterisk (*) komt overeen met elke reeks tekens.
Om te zien hoe het werkt op echte gegevens, zie het volgende voorbeeld:
Zoals u in de bovenstaande schermafbeelding ziet, geeft de formule SEARCH("function*2013", A2) de positie van het eerste teken ("f") in de substring als de tekststring waarnaar in het within_text argument wordt verwezen zowel "function" als "2013" bevat, ongeacht hoeveel andere tekens daartussen staan.
Tip. Om een echt vraagteken (?) of sterretje (*) te vinden, typt u een tilde (~) voor het overeenkomstige teken.
Excel FIND en SEARCH formule voorbeelden
In de praktijk worden de functies ZOEKEN en ZOEKEN in Excel zelden alleen gebruikt, maar meestal in combinatie met andere functies zoals MIDDEN, LINKS of RECHTS.
Voorbeeld 1. Zoek een tekenreeks voor of na een bepaald teken
Dit voorbeeld laat zien hoe u alle tekens in een tekststring links of rechts van een bepaald teken kunt vinden en extraheren. Om het gemakkelijker te begrijpen, kunt u het volgende voorbeeld bekijken.
Stel u hebt een kolom met namen (kolom A) en u wilt de voornaam en de achternaam in afzonderlijke kolommen opnemen.
Om de voornaam te krijgen, kunt u FIND (of SEARCH) gebruiken in combinatie met de functie LEFT:
=LEFT(A2, FIND(" ", A2)-1)
of
=LEFT(A2, SEARCH(" ", A2)-1)
Zoals u waarschijnlijk weet, geeft de Excel LINKS-functie het opgegeven aantal meest linkse tekens in een tekenreeks terug. En u gebruikt de FIND-functie om de positie van een spatie (" ") te bepalen, zodat de LINKS-functie weet hoeveel tekens hij moet extraheren. Daarbij trekt u 1 af van de positie van de spatie, omdat u niet wilt dat de geretourneerde waarde de spatie bevat.
Om de achternaam te extraheren, gebruik je de combinatie van de functies RECHTS, FIND / SEARCH en LEN. De functie LEN is nodig om het totale aantal tekens in de tekenreeks te krijgen, waarvan je de positie van de spatie aftrekt:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
of
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
De volgende schermafbeelding toont het resultaat:
Voor meer complexe scenario's, zoals het extraheren van een middelste naam of het splitsen van namen met achtervoegsels, zie Cellen splitsen in Excel met behulp van formules.
Voorbeeld 2. N-de voorkomen van een gegeven teken in een tekststring vinden
Stel dat u een aantal tekststrings in kolom A hebt, bijvoorbeeld een lijst van SKU's, en u wilt de positie vinden van de 2e De volgende formule werkt prima:
=FIND("-", A2, FIND("-",A2)+1)
De eerste twee argumenten zijn eenvoudig te interpreteren: zoek een streepje ("-") in cel A2. In het derde argument (start_num) is een andere FIND-functie opgenomen die Excel vertelt te beginnen met zoeken vanaf het teken dat direct volgt op het eerste streepje (FIND("-",A2)+1).
Om de positie van de 3e voorval , neemt u de bovenstaande formule op in het start_num argument van een andere FIND-functie en telt u 2 op bij de teruggegeven waarde:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Een andere en waarschijnlijk eenvoudigere manier om het N-de voorkomen van een bepaald teken te vinden is met behulp van de Excel FIND-functie in combinatie met CHAR en SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Waarbij "-" het teken in kwestie is en "3" het N-de voorkomen dat u wilt vinden.
In de bovenstaande formule vervangt de SUBSTITUTE-functie het derde streepje ("-") door CHAR(1), dat in het ASCII-systeem het niet-afdrukbare "Begin van een kop" teken is. In plaats van CHAR(1) kunt u elk ander niet-afdrukbaar teken gebruiken van 1 tot 31. En dan geeft de FIND-functie de positie van dat teken in de tekststring terug. De algemene formule is dus als volgt:
FIND(CHAR(1),SUBSTITUTE( cel , karakter CHAR(1), N-de gebeurtenis ))Op het eerste gezicht lijkt het misschien dat de bovenstaande formules weinig praktische waarde hebben, maar het volgende voorbeeld laat zien hoe nuttig ze zijn bij het oplossen van echte opgaven.
Opmerking: denk eraan dat de Excel FIND functie hoofdlettergevoelig is. In ons voorbeeld maakt dit geen verschil, maar als u met letters werkt en u wilt een hoofdletterongevoelig overeenkomst, gebruik de functie ZOEKEN in plaats van ZOEKEN.
Voorbeeld 3. Extraheer N tekens na een bepaald teken
Om een substring van een bepaalde lengte binnen een tekststring op te sporen, gebruikt u Excel FIND of Excel SEARCH in combinatie met de MID-functie. Het volgende voorbeeld laat zien hoe u dergelijke formules in de praktijk kunt gebruiken.
Stel dat u in onze lijst van SKU's de eerste 3 tekens na het eerste streepje wilt vinden en die in een andere kolom wilt opnemen.
Als de groep tekens vóór het eerste streepje altijd hetzelfde aantal items bevat (bv. 2 tekens), zou dit een triviale taak zijn. U zou de functie MID kunnen gebruiken om 3 tekens van een tekenreeks terug te geven, beginnend op positie 4 (waarbij de eerste 2 tekens en een streepje worden overgeslagen):
=MID(A2, 4, 3)
Vertaald in het Engels zegt de formule: "Kijk in cel A2, begin te extraheren vanaf teken 4, en stuur 3 tekens terug".
In echte werkbladen kan de substring die u moet ophalen echter overal in de tekststring beginnen. In ons voorbeeld weet u misschien niet hoeveel tekens voorafgaan aan het eerste streepje. Om deze uitdaging het hoofd te bieden, gebruikt u de functie FIND om het beginpunt te bepalen van de substring die u wilt ophalen.
De FIND-formule om de positie van het 1e streepje terug te vinden is als volgt:
=FIND("-",A2)
Omdat u wilt beginnen met het teken dat volgt op het streepje, voegt u 1 toe aan de geretourneerde waarde en neemt u de bovenstaande functie op in het tweede argument (start_num) van de MID-functie:
=MID(A2, FIND("-",A2)+1, 3)
In dit scenario werkt de Excel SEARCH-functie even goed:
=MID(A2, SEARCH("-",A2)+1, 3)
Geweldig, maar wat als de groep tekens na het eerste streepje een ander aantal tekens bevat? Hmm... dat kan een probleem zijn:
Zoals u in de bovenstaande schermafbeelding ziet, werkt de formule perfect voor rijen 1 en 2. In rijen 4 en 5 bevat de tweede groep 4 tekens, maar worden alleen de eerste 3 tekens geretourneerd. In rijen 6 en 7 zijn er slechts 2 tekens in de tweede groep, en daarom retourneert onze Excel-zoekformule een streepje erachter.
Als je wilde terugkeren alle tekens tussen het 1e en 2e voorkomen van een bepaald teken (streepje in dit voorbeeld), hoe zou u dan te werk gaan? Hier is het antwoord:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Laten we voor een beter begrip van deze MID-formule de argumenten één voor één bekijken:
- 1e argument (tekst): de tekststring met de tekens die u wilt extraheren, in dit voorbeeld cel A2.
- 2e argument (start_positie): specificeert de positie van het eerste teken dat u wilt extraheren. U gebruikt de FIND-functie om het eerste streepje in de tekenreeks te lokaliseren en voegt 1 toe aan die waarde omdat u wilt beginnen met het teken dat volgt op het streepje: FIND("-",A2)+1.
- 3e argument (num_chars): geeft het aantal tekens aan dat u wilt teruggeven. In onze formule is dit het lastigste deel. U gebruikt twee FIND (of SEARCH) functies, de ene bepaalt de positie van het eerste streepje: FIND("-",A2). En de andere geeft de positie van het tweede streepje: FIND("-", A2, FIND("-",A2)+1). Vervolgens trekt u de eerste af van de laatste, en vervolgens trekt u er 1 af omdat u niet wilt datAls resultaat krijg je het aantal tekens tussen het eerste en het tweede streepje, en dat is precies wat we zoeken. Die waarde voer je dus in in het num_chars argument van de MID-functie.
Op dezelfde manier kunt u 3 tekens na het 2e streepje terug laten komen:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Of haal alle tekens tussen de 2e en 3e streepjes eruit:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Voorbeeld 4. Tekst tussen haakjes zoeken
Stel, u hebt een lange tekststring in kolom A en u wilt alleen de tekst tussen (haakjes) vinden en extraheren.
Daartoe is de MID-functie nodig om het gewenste aantal tekens van een tekenreeks te verkrijgen, en de Excel FIND- of SEARCH-functie om te bepalen waar te beginnen en hoeveel tekens te extraheren.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
De logica van deze formule is vergelijkbaar met die van het vorige voorbeeld. En opnieuw is het meest complexe deel het laatste argument dat de formule vertelt hoeveel karakters er moeten worden teruggegeven. Die vrij lange uitdrukking in het num_chars argument doet het volgende:
- Eerst zoek je de positie van de afsluitende haakjes:
SEARCH(")",A2)
- Daarna zoek je de positie van de openingstussen haakjes:
ZOEKEN("(",A2)
- En dan bereken je het verschil tussen de positie van de haakjes aan het begin en het einde en trek je daar 1 van af, omdat je geen van beide haakjes in het resultaat wilt hebben:
ZOEK(")",A2)-ZOEK("(",A2))-1
Uiteraard belet niets u om de Excel FIND-functie te gebruiken in plaats van SEARCH, want hoofdlettergevoeligheid of -ongevoeligheid maakt in dit voorbeeld geen verschil.
Hopelijk heeft deze handleiding enig licht geworpen op het gebruik van de ZOEK- en ZOEK-functies in Excel. In de volgende handleiding gaan we de REPLACE-functie onder de loep nemen, dus blijf kijken. Bedankt voor het lezen!
Download praktijk werkboek
Voorbeelden van zoek- en zoekformules