Inhoudsopgave
Als u een lijst met tekst hebt en cellen wilt doorzoeken en waarden wilt teruggeven op basis van de lijst, moet u een formule maken omdat Excel geen eenvoudige manier biedt om dit te doen. In dit artikel heb ik dit probleem aangepakt en vijf verschillende formules gegeven om deze bewerking uit te voeren, zodat u de perfecte kunt kiezen voor uw situatie, en de waarde teruggeeft als de cel bepaalde tekst bevatvan een lijst.
Download Praktijk Werkboek
Je kunt het werkboek dat ik in dit artikel heb gebruikt downloaden via de volgende knop en er zelf mee oefenen.
Als cel tekst uit lijst.xlsx bevat
Inleiding tot de in dit artikel gebruikte functies
De formules die ik hier heb gebruikt, gebruiken de volgende functies:
- De COUNTIFS-functie:
Deze functie telt cellen die aan meerdere criteria voldoen. De syntaxis van de Functie COUNTIFS is als volgt.
=COUNTIFS (bereik1, criteria1, [bereik2], [criteria2], ...)
- reeks1 - De 1e reeks om te evalueren.
- criteria1 - Het criterium voor de 1e reeks.
- range2 [optioneel]: Het 2e bereik werkt net als bereik 1.
- criteria2 [optioneel]: Het te gebruiken criterium op het 2e bereik. Deze functie staat maximaal 127 reeksen en criteriaparen .
- De TEXTJOIN-functie:
Deze functie voegt tekstwaarden samen met een scheidingsteken. De syntaxis van de TEXTJOIN-functie is als volgt.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- scheidingsteken: Het scheidingsteken tussen de teksten die de functie gaat combineren.
- ignore_empty: Dit argument bepaalt of de functie de lege cellen negeert of niet.
- tekst1: 1e tekstwaarde (of bereik).
- tekst2 [optioneel]: 2e tekstwaarde (of bereik).
- De MATCH-functie:
Deze functie krijgt de positie van een item in een array. De syntaxis van de MATCH functie is als volgt.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: De waarde die moet passen in lookup_array .
- lookup_array: Een reeks cellen of een arrayreferentie.
- match_type [optioneel]: 1 = exacte of volgende kleinste, 0 = exacte overeenkomst, -1 = exacte of volgende grootste. Standaard is match_type=1.
- De INDEX-functie:
Deze functie krijgt waarden in een lijst of tabel op basis van locatie. De syntaxis van de INDEX-functie is als volgt.
=INDEX (array, row_num, [col_num], [area_num])
- array: Bereik van cellen, of een matrixconstante.
- row_num: De rijpositie in de referentie.
- col_num [optioneel] : De kolompositie in de referentie.
- area_num [optioneel]: Het referentiebereik dat moet worden gebruikt.
- De IFERROR-functie:
Deze functie vangt en behandelt fouten. De syntaxis van de IFERROR-functie is als volgt.
=IFERROR (value, value_if_error)
- waarde: De waarde, referentie, of formule om te controleren op een fout.
- value_if_error: De waarde die moet worden teruggegeven als er een fout is gevonden.
- De zoekfunctie:
Deze functie krijgt de locatie van tekst in een string. De syntaxis van de Zoekfunctie is als volgt.
=SEARCH (find_text, within_text, [start_num])
- find_text Dit argument specificeert welke tekst moet worden gevonden.
- within_text: Dit geeft aan waar de tekst te vinden is.
- start_num [optioneel]: Hiermee geeft u aan vanaf welke positie in de tekststring de positie van de opgegeven tekst moet worden geteld. Optioneel en standaard 1 vanaf links.
5 Formules om waarde terug te geven in Excel als een cel bepaalde tekst uit een lijst bevat
Ik zal proberen in deze dataset een voorbeeld uit de praktijk te geven. Enkele dranken zijn hier vertegenwoordigd. Chips , Koude dranken en Granen zijn de drie categorieën dranken in deze dataset. In een enkele kolom genaamd Alle producten zijn de naam en de categorieën van de dranken met elkaar verbonden. Twee van deze categorieën, Chips en Koude dranken zijn ook n de Lijst kolom. Gebaseerd op de Lijst kolom, wordt de gewenste uitvoer weergegeven in de tweede kolom.
1. Combineer de functies COUNTIF, IF & OR om de waarde terug te geven als een cel een tekst uit een lijst bevat.
Dit is de handigste formule als u de waarde van de hele cel wilt teruggeven na de match.
Hier heb ik de celwaarden opgehaald van de Producten die overeenkwam met de Lijst kolomcriteria en toonde ze aan de Product gebaseerd op die lijst column.
De formule is als volgt:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Formule Breakdown:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Hier is de Asteriskteken ( * ) is een jokerteken. Er werd gezocht naar " Chips " en "Cold Drinks" substring binnen Cel B5 dat is "
Ruffles - Chips
"
string.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
De COUNTIF functie gaf één terug voor elke substring match. Als "
Chips
"
wordt gevonden in Cel B5 Het geeft terug. 1:0 }.
=IF(OR({1;0}), B5, "")
De OF functie geeft een WARE waarde als een van de argumenten WARE In dit geval, een (1)= WARE .
=IF(TRUE, "Ruffles - Chips", "")
Als de ALS De waarde van de functie is WARE geeft het eerste argument de gewenste uitvoer terug.
Definitieve Uitgang : Ruffles - Chips
Let op:
Hier heb ik de cel getoond die overeenkwam, maar u kunt elke gewenste uitvoer tonen door de ALS functies uitvoer met uw gewenste uitvoer.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
Lees meer: If Cell Contain Word Then Assign Value in Excel (4 formules)
2. Gebruik de IF-OR combinatie met de SEARCH-functie om een waarde met meerdere voorwaarden te verkrijgen.
Hier heb ik de celwaarden opgehaald van de Producten die overeenkwam met de Lijst kolomcriteria en toonde ze aan de Product gebaseerd op die lijst column.
De formule is als volgt:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)),B5,"")
Formule Breakdown:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)),B5,"")
De ZOEKEN functie zocht de waarden van de Lijst kolom in Cel B5 Voor " Chips " het keerde terug 11 dat is de startpositie van de substring. Voor Koude dranken gaf het een foutmelding.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE)),B5,"")
De ISNUMMER functie omgezet 11 in WARE waarde en de fout in FALSE waarde.
=IF(OR(TRUE,FALSE)),B5,"")
De OF functie geeft een WARE waarde als een van de argumenten WARE Aangezien er een WARE argument, geeft het ook de WARE waarde in dit geval.
=IF(TRUE, "Ruffles - Chips","")
Als de ALS De waarde van de functie is WARE geeft het eerste argument de gewenste uitvoer terug.
Eindresultaat: Ruffles - Chips
Let op:
- Hier heb ik de cel getoond die overeenkwam, maar u kunt elke gewenste uitvoer tonen door de ALS functies uitvoer met uw gewenste uitvoer.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)),1,0)
- Het belangrijkste voordeel van deze formule is dat het geen matrixformule is, maar het is niet aan te raden als u veel cellen in de Lijst omdat je elke cel van de Lijst handmatig.
- Voor hoofdlettergevoelige situaties kunnen we de onderstaande formule gebruiken op basis van de FIND-functie in plaats van de ZOEKEN functie.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5)),B5,"")
Lees meer: Excel Als Cel Tekst Bevat Dan Terugkeerwaarde (8 Eenvoudige Manieren)
Vergelijkbare lezingen:
- Hoe op te tellen of een cel specifieke tekst bevat in Excel (6 manieren)
- VLOOKUP gebruiken als cel een woord bevat binnen tekst in Excel
- Hoe tekst te vinden in een Excel-bereik & retour celverwijzing (3 manieren)
3. TEXTJOIN-formule gebruiken om waarde in een andere cel terug te geven als een cel een tekst uit een lijst bevat
Deze formule is handig wanneer u moet laten zien welke string of strings uit de Lijst afgestemd.
Hier heb ik de celwaarden opgehaald uit de LIJST kolom waar ze overeenkwamen met de Product en toonde ze aan de Matched value van Lijst column.
De formule is als volgt:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,"")
Formule Breakdown:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,"")
Hier is de Asteriskteken ( * ) is een jokerteken. Er werd gezocht naar " Chips " en "Koude dranken" substring binnen cel B5 die " Ruffles - Chips " string.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
De COUNTIF functie gaf één terug voor elke substring match. Als " Chips " is te vinden in Cel B5 Het geeft terug. 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
De ALS functie alleen de " Chips " waarde als alleen de eerste waarde van zijn argument een = Echt .
TEXTJOIN(", ",TRUE,{"Chips";""})
De TEXTJOIN functie deed hier niets omdat slechts één waarde uit de Lijst Als er veel waarden overeenkwamen, zou het alle waarden teruggeven met komma's (,) ertussen als scheidingsteken.
Definitieve output: chips
Lees meer: Als cel tekst bevat, voeg dan tekst toe in een andere cel in Excel
4. Gebruik een INDEX MATCH formule om waarde terug te geven als de cel specifieke tekst bevat.
Dit is een alternatief voor de TEXTJOIN Deze formule laat ook zien welke string of strings uit de Lijst afgestemd.
Hier heb ik de celwaarden opgehaald uit de LIJST kolom waar ze overeenkwamen met de Product en toonde ze aan de Matched value van Lijst column.
De formule is als volgt:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),").
Formule Breakdown:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),")
Hier is de Asteriskteken ( * ) is een jokerteken. Er werd gezocht naar " Chips " en " Koude dranken " substring binnen Cel B5 dat is " Ruffles - Chips " string.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0),"")
De COUNTIF functie gaf één terug voor elke substring match. Als " Chips " is te vinden in Cel B5 Het geeft terug. 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
De MATCH functie gaf één terug omdat er maar één waarde is " Chips "die overeenkwam.
IFERROR(INDEX($E$5:$E$6,1),"")
De INDEX functie gaf " Chips " als de waarde in de Lijst array.
IFERROR("Chips","")
Hier is de IFERROR functie wordt gebruikt om de fout af te handelen die optreedt als er geen overeenkomsten zijn.
Definitieve output: chips
Let op:
Hier heb ik de cel getoond die overeenkwam, maar u kunt elke gewenste uitvoer tonen door de ALS functies uitvoer met uw gewenste uitvoer.
Lees meer: Excel Formule Als Cel Tekst Bevat Dan Terugkeer Waarde in een andere Cel
5. Pas de EXACT-functie toe met IF en TEXTJOIN.
Dit is een andere oplossing voor dit probleem in verschillende situaties. Hier heb ik de celwaarde opgehaald uit de kolom Lijst met een enkel lid. We matchen deze waarde met het Product en tonen alle matchwaarden in een enkele cel.
De formule is als volgt:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"")
Formuleverdeling :
EXACT(C5:C14,$F$5)
Dit deel controleert welke waarden van de Bereik C5:14 overeenkomen met Cel F5 en terug te keren WARE en FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Dit deel geeft de namen terug waarvoor we WARE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"")
Dit voegt tenslotte alle namen samen met een komma na elke naam.
Snelle opmerkingen
Al deze formules hier (behalve de 2e) zijn matrixformules. Dat betekent dat je op Ctrl+Shift+Enter in plaats van alleen op de Ga naar knop voor het invoeren van deze formule. Maar als u een Office 365 gebruiker, dan kun je ze toepassen door op gewoon Kom binnen.
Conclusie
In dit artikel heb ik verschillende formules voor verschillende gevallen opgesomd om een waarde terug te geven als een cel specifieke tekst uit een lijst bevat. Ik hoop dat u een oplossing voor uw probleem hebt kunnen vinden. Laat een reactie achter als u suggesties of vragen hebt. Bovendien kunt u een bezoek brengen aan onze blog voor meer van zulke artikelen.