Ynhâldsopjefte
As jo in list mei tekst hawwe en sellen wolle sykje en wearden weromjaan op basis fan 'e list, moatte jo in formule bouwe, om't Excel gjin ienfâldige manier biedt om dit te dwaan. Yn dit artikel haw ik dit probleem oanpakt en fiif ferskillende formules levere om dizze operaasje út te fieren, sadat jo de perfekte kieze kinne foar jo situaasje, en de wearde weromjaan as de sel bepaalde tekst út in list befettet.
Download Oefeningswurkboek
Jo kinne it wurkboek dat ik yn dit artikel brûkte downloade fan 'e folgjende knop en dêr sels oefenje.
As sel tekst befettet fan List.xlsx
Ynlieding ta funksjes brûkt yn dit artikel
De formules dy't ik hjir brûkte brûke de folgjende funksjes:
- De COUNTIFS-funksje:
Dizze funksje telt sellen dy't oerienkomme mei meardere kritearia. De syntaksis fan de COUNTIFS-funksje is as folget.
=COUNTIFS (berik1, kritearia1, [berik2], [kritearia2], …)
- berik1 – It 1e berik om te evaluearjen.
- kritearia1 – It kritearium om te brûken op it 1e berik.
- berik2 [opsjoneel]: It 2e berik, wurket krekt as berik1.
- kritearia2 [opsjoneel]: It te brûken kritearium op de 2e rige. Dizze funksje lit maksimaal 127 beriken en kriteariapearen ta.
- De TEXTJOIN-funksje:
Dizze funksje komt by tekstwearden mei in delimiter. De syntaksis fan de TEXTJOIN-funksje is as folget.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], …)
- delimiter: De skieding tusken teksten dy't de funksje sil kombinearje.
- ignore_empty: Dit argumint spesifisearret as de funksje de lege negearret sellen of net.
- tekst1: 1e tekstwearde (of berik).
- tekst2 [opsjoneel]: 2e tekstwearde (of berik) .
- De MATCH-funksje:
Dizze funksje krijt de posysje fan in item yn in array. De syntaksis fan de MATCH-funksje is as folget.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: De wearde dy't oerienkomt yn lookup_array .
- lookup_array: In berik fan sellen of in arrayreferinsje.
- match_type [opsjoneel]: 1 = eksakt of folgjende lytste, 0 = eksakte oerienkomst, -1 = eksakt of folgjende grutste. Standert is match_type=1.
- De INDEX-funksje:
Dizze funksje krijt wearden yn in list of tabel basearre op lokaasje . De syntaksis fan de INDEX-funksje is as folget.
=INDEX (array, row_num, [col_num], [area_num])
- array: Sellenberik, of in arraykonstante.
- row_num: De rigeposysje yn de referinsje.
- col_num [opsjoneel] : De kolomposysje yn de referinsje.
- area_num [opsjoneel]: It berikyn ferwizing dy't brûkt wurde moat.
- De IFERROR-funksje:
Dizze funksje trapet flaters en behannelet flaters. De syntaksis fan de IFERROR-funksje is as folget.
=IFERROR (wearde, value_if_error)
- wearde: De wearde, referinsje of formule om te kontrolearjen op in flater.
- value_if_error: De wearde dy't weromjûn wurdt as in flater fûn wurdt.
- De SEARCH-funksje:
Dizze funksje krijt de lokaasje fan tekst yn in tekenrige. De syntaksis fan de SEARCH-funksje is as folget.
=SEARCH (find_text, within_text, [start_num])
- find_text : Dit argumint spesifiseart hokker tekst te finen is.
- within_text: Dit spesifiseart wêr't de tekst te finen is.
- start_num [opsjoneel]: Hjirmei sille jo spesifisearje- fan hokker posysje yn 'e tekststring jo de posysje fan 'e oantsjutte tekst telle. Opsjoneel en is standert op 1 fan links.
5 formules om wearde werom te jaan yn Excel As in sel bepaalde tekst út in list befettet
Ik sil besykje te presintearjen in real-life foarbyld yn dizze dataset. Guon dranken binne hjir fertsjintwurdige. Chips , Kâlde dranken , en Cereals binne de trije kategoryen fan dranken yn dizze dataset. Yn ien kolom mei de namme Alle produkten binne de namme en kategoryen fan 'e dranken keppele. Twa fan dizze kategoryen, Chips en KâldDranken , binne ek n de kolom List . Op grûn fan de kolom List sil de winske útfier yn de twadde kolom werjûn wurde.
1. Kombinearje COUNTIF, IF & amp; OF-funksjes om wearde werom te jaan as in sel in tekst út in list befettet
Dit is de meast brûkbere formule as jo de wearde fan 'e hiele sel nei de wedstriid weromjaan wolle.
Hjir haw ik de selwearden fan de Produkten ophelle dy't oerienkomme mei de List -kolomkritearia en se toand oan de Produkt basearre op dy list kolom.
De formule is as folget:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Formule-ûnderdieling:
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Hjir, it Asterisk-teken ( * ) is in jokerteken. It socht nei " Chips " en "Cold Drinks" substring binnen Sel B5 dat is "
Ruffles - Chips
"
string.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
De funksje COUNTIF joech ien werom foar elke substring-oerienkomst. As "
Chips
"
is fûn yn sel B5 , jout it { 1:0 } werom.
-
=IF(OR({1;0}), B5, "")
De funksje OF jout in wearde TRUE werom as ien fan de arguminten TRUE is. Yn dit gefal is ien (1)= WAAR .
-
=IF(TRUE, "Ruffles - Chips", "")
As de IF de wearde fan de funksje is TRUE , it jout it earste argumint werom dat de winske útfier is.
Finale Utfier : Ruffles – Chips
Opmerking:
Hjir haw ik desel dy't oerienkomt, mar jo kinne elke útfier sjen litte lykas jo wolle troch de útfier fan IF funksjes te feroarjen mei jo winske útfier.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
Lês mear: As sel wurd befettet, dan tawize wearde yn Excel (4 formules)
2. Brûk IF-OR-kombinaasje mei SEARCH-funksje om wearde werom te jaan mei meardere betingsten
Hjir haw ik de selwearden ophelle fan de Produkten dy't oerienkomme mei de List kolomkritearia en lieten se sjen oan de Produkt basearre op dy list kolom.
De formule is as folget:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Formule-yndieling:
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
De funksje SEARCH socht de wearden fan de kolom List yn Sel B5 . Foar " Chips " joech it 11 werom, dat is de startposysje fan de substring. Foar Kâlde dranken joech it in flater werom.
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
De funksje ISNUMBER omboud 11 yn TRUE wearde en de flater yn FALSE wearde.
-
=IF(OR(TRUE,FALSE)),B5,"")
De funksje OF jout in wearde TRUE werom as ien fan de arguminten TRUE is. Om't der in TRUE -argumint is, jout it yn dit gefal ek de TRUE -wearde werom.
-
=IF(TRUE, "Ruffles - Chips","")
Om't de wearde fan de funksje IF TRUE is, jout it it earste argumint werom dat de winske útfier is.
Finale útfier: Ruffles –Chips
Opmerking:
- Hjir haw ik de sel sjen litten dy't oerienkomt, mar jo kinne elke útfier sjen litte dy't jo wolle troch de te feroarjen IF funksjes útfier mei jo winske útfier.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- It wichtichste foardiel fan dit formule is dat dit gjin arrayformule is, mar it is net oan te rieden as jo in protte sellen yn 'e List hawwe, om't jo elke sel fan 'e List mei de hân ynfiere moatte.
- Foar gefal-gefoelige situaasjes kinne wy de ûndersteande formule brûke basearre op de FIND-funksje ynstee fan de SEARCH -funksje.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Lês mear: Excel as sel tekst befettet en dan wearde werom (8 maklike manieren)
Silkene lêzingen:
- Hoe summje as sel spesifike tekst befettet yn Excel (6 manieren)
- Brûk VLOOKUP as sel in wurd befettet yn tekst yn Excel
- Hoe kinne jo tekst fine yn in Excel-berik & amp; selferwizing werom (3 manieren)
3. Brûk TEXTJOIN-formule om wearde werom te jaan yn in oare sel as in sel in tekst út in list hat
Dizze formule is nuttich as jo sjen litte moatte hokker tekenrige of strings út de List oerienkomt .
Hjir haw ik de selwearden helle út 'e kolom LIST wêr't se oerienkomme mei it Produkt en toand se oan 'e Matched wearde fan List kolom.
De formule is as folget:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
FormuleFerdieling:
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
Hjir, it Asterisk teken ( * ) is in jokerteken. It socht nei " Chips " en "Cold Drinks" substring binnen Cell B5 dat is " Ruffles - Chips " string.
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
De funksje COUNTIF joech ien werom foar elke substring-oerienkomst. As " Chips " wurdt fûn yn Sel B5 , jout it { 1:0 } werom.
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
De funksje IF joech allinich de wearde " Chips " werom, om't allinich de earste wearde fan syn argumint ien wie = Wier .
-
TEXTJOIN(", ",TRUE,{"Chips";""})
De funksje TEXTJOIN hat hjir neat dien as mar ien wearde út de List is oerienkommen. As d'r in protte wearden wiene om oerien te kommen, soe it se allegear weromjûn hawwe mei komma's (,) tusken har as in skiedingsteken.
Finale útfier: Chips
Lês mear: As sel tekst befettet, foegje dan tekst ta yn in oare sel yn Excel
4. Brûk in INDEX MATCH-formule om wearde werom te jaan as sel spesifike tekst befettet
Dit is in alternatyf foar de TEXTJOIN -formule. Dizze formule lit ek sjen hokker tekenrige of stringen út de List oerienkomme.
Hjir haw ik de selwearden helle út de kolom LIST dêr't se oerienkomme mei de Product en liet se sjen oan de Matched value from List kolom.
De formule is as folget:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
Formule-ûnderdieling:
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
Hjir is it Asterisk teken ( * ) in wildcard karakter. It socht nei " Chips " en " Cold Drinks " substring binnen Sel B5 dat is " Ruffles - Chips " string.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
De funksje COUNTIF joech ien werom foar elke substring-oerienkomst. As " Chips " wurdt fûn yn Sel B5 , jout it { 1:0 } werom.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
De funksje MATCH joech ien werom, om't d'r mar ien wearde " Chips " is dy't oerienkomt.
-
IFERROR(INDEX($E$5:$E$6,1),"")
De funksje INDEX joech " Chips " werom, om't it de wearde wie yn 'e List -array.
-
IFERROR("Chips","")
Hjir wurdt de funksje IFERROR brûkt om de flater te behanneljen dy't sil foarkomme as der gjin oerienkomsten binne .
Finale útfier: chips
Opmerking:
Hjir haw ik de sel sjen litten dy't oerienkomt, mar jo kinne sjen litte elke útfier as jo wolle troch de útfier fan IF funksjes te feroarjen mei jo winske útfier.
Lês Mear: Excel Formule As Cell Contains Text Then Return Value in In oare sel
5. Tapasse EXACT Funksje mei IF en TEXTJOIN
Dit is in oare oplossing foar dit probleem yn ferskate situaasjes. Hjir haw ik de selwearde fan 'e List kolom helle mei ien lid. Wy oerienkomme dizze wearde mei it Produkt en lieten alle oerienkomstwearden yn ien sel sjen.
De formule is asfolget:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Formule-ûnderdieling :
-
EXACT(C5:C14,$F$5)
Dit diel kontrolearret hokker wearden fan it berik C5:14 oerienkomme mei Sel F5 en werom TRUE en FALSE .
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Dit diel jout de nammen werom dêr't wy WIERE foar krije.
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Op it lêst komt dit alle nammen by elke namme mei in komma efter elke namme.
Quick Notes
Al dizze formules hjir (útsein de 2e) binne array formules. Dat betsjut dat jo op Ctrl+Shift+Enter moatte drukke ynstee fan gewoan op de Enter knop te drukken om dizze formule yn te fieren. Mar as jo in Office 365 brûker binne, dan kinne jo se tapasse troch gewoan op Enter te drukken.
Konklúzje
Yn dit artikel haw ik ferskate formules beheind foar ferskate gefallen om wearde werom te jaan as in sel spesifike tekst út in list befettet. Ik hoopje dat jo in oplossing fine kinnen foar jo probleem. Lit in reaksje efter as jo suggestjes of fragen hawwe. Boppedat kinne jo ús blog besykje foar mear sokke artikels.