INHOUDSOPGAWE
As jy 'n lys teks het en selle wil deursoek en waardes op grond van die lys wil terugstuur, sal jy 'n formule moet bou omdat Excel nie 'n eenvoudige manier bied om dit te doen nie. In hierdie artikel het ek hierdie kwessie aangespreek en vyf verskillende formules verskaf om hierdie bewerking uit te voer sodat jy die perfekte een vir jou situasie kan kies, en die waarde kan terugstuur as die sel sekere teks uit 'n lys bevat.
Laai Oefenwerkboek af
Jy kan die werkboek wat ek in hierdie artikel gebruik het van die volgende knoppie aflaai en self daarmee oefen.
As sel teks van List.xlsx bevat
Inleiding tot funksies wat in hierdie artikel gebruik word
Die formules wat ek hier gebruik het, gebruik die volgende funksies:
- Die COUNTIFS-funksie:
Hierdie funksie tel selle wat by verskeie kriteria pas. Die sintaksis van die COUNTIFS-funksie is soos volg.
=COUNTIFS (reeks1, kriteria1, [reeks2], [kriteria2], …)
- reeks1 – Die 1ste reeks om te evalueer.
- kriteria1 – Die kriterium om op die 1ste reeks te gebruik.
- reeks2 [opsioneel]: Die 2de reeks, tree net soos reeks1 op.
- kriteria2 [opsioneel]: Die kriterium om te gebruik op die 2de reeks. Hierdie funksie laat maksimum 127 reekse en kriteriapare toe .
- Die TEXTJOIN-funksie:
Hierdie funksie sluit teks aanwaardes met 'n afbakener. Die sintaksis van die TEXTJOIN-funksie is soos volg.
=TEXTJOIN (skeidingsteken, ignoreer_leeg, teks1, [teks2], …)
- delimiter: Die skeiding tussen tekste wat die funksie gaan kombineer.
- ignore_empty: Hierdie argument spesifiseer of die funksie die leë ignoreer selle of nie.
- teks1: 1ste tekswaarde (of reeks).
- teks2 [opsioneel]: 2de tekswaarde (of reeks) .
- Die MATCH-funksie:
Hierdie funksie kry die posisie van 'n item in 'n skikking. Die sintaksis van die MATCH-funksie is as volg.
=MATCH (soekwaarde, opsoek-skikking, [pastipe])
- opsoekwaarde: Die waarde om te pas in opsoek-skikking .
- opsoek-skikking: 'n Reeks selle of 'n skikkingsverwysing.
- passing_tipe [opsioneel]: 1 = presies of volgende kleinste, 0 = presiese passing, -1 = presies of volgende grootste. By verstek, match_type=1.
- Die INDEX-funksie:
Hierdie funksie kry waardes in 'n lys of tabel gebaseer op ligging . Die sintaksis van die INDEX-funksie is soos volg.
=INDEX (skikking, ry_getal, [kolom_getal], [area_getal])
- skikking: Omvang van selle, of 'n skikkingkonstante.
- ry_num: Die ryposisie in die verwysing.
- kol_nommer [opsioneel] : Die kolomposisie in die verwysing.
- area_num [opsioneel]: Die reeksin verwysing wat gebruik moet word.
- Die IFERROR-funksie:
Hierdie funksie vang en hanteer foute. Die sintaksis van die IFERROR-funksie is soos volg.
=IFERROR (waarde, waarde_as_fout)
- waarde: Die waarde, verwysing of formule om vir 'n fout na te gaan.
- waarde_if_fout: Die waarde om terug te gee as 'n fout gevind word.
- Die SOEK-funksie:
Hierdie funksie kry die ligging van teks in 'n string. Die sintaksis van die SOEK-funksie is soos volg.
=SOEK (vind_teks, binne_teks, [begin_getal])
- vind_teks : Hierdie argument spesifiseer watter teks om te vind.
- binne_teks: Dit spesifiseer waar om die teks te vind.
- begin_num [opsioneel]: Hiermee sal jy spesifiseer- van watter posisie in die teksstring jy die posisie van die gespesifiseerde teks sal tel. Opsioneel en verstek na 1 van links.
5 formules om waarde in Excel terug te gee as 'n sel sekere teks uit 'n lys bevat
Ek sal probeer om aan te bied 'n werklike voorbeeld in hierdie datastel. Sommige drankies word hier verteenwoordig. Tjips , Koeldranke en Graankos is die drie kategorieë drankies in hierdie datastel. In 'n enkele kolom genaamd Alle produkte word die naam en kategorieë van die drankies aan mekaar gekoppel. Twee van hierdie kategorieë, Chips en KoueDrankies is ook in die Lys -kolom. Gebaseer op die Lys -kolom, sal die verlangde afvoer in die tweede kolom vertoon word.
1. Kombineer COUNTIF, IF & amp; OF Funksies om waarde terug te gee as 'n sel 'n teks uit 'n lys bevat
Dit is die nuttigste formule as jy die waarde van die hele sel na die passing wil teruggee.
Hier het ek die selwaardes van die Produkte wat ooreenstem met die Lys -kolomkriteria gaan haal en dit aan die Produk gewys op grond van daardie lys kolom.
Die formule is soos volg:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Formule-ontleding:
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Hier, die Asterisk-teken ( * ) is 'n jokerteken. Dit het gesoek vir " Tjips " en "Koeldranke"-substring binne Sel B5 wat "
Ruffles - Chips
"
-string is.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Die COUNTIF -funksie het een vir elke substring-passing teruggegee. Aangesien "
Chips
"
in Sel B5 gevind word, gee dit { 1:0 } terug.
-
=IF(OR({1;0}), B5, "")
Die OF -funksie gee 'n WAAR -waarde terug as enige van die argumente WAAR is. In hierdie geval is een (1)= WAAR .
-
=IF(TRUE, "Ruffles - Chips", "")
As die IF funksie se waarde is WAAR , dit gee die eerste argument terug wat die verlangde uitvoer is.
Finale Uitvoer : Ruffles – Chips
Let wel:
Hier het ek diesel wat ooreenstem, maar jy kan enige uitset wys soos jy wil deur die IF -funksie-uitvoer te verander met jou verlangde uitset.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
Lees meer: As sel Woord bevat, ken dan waarde toe in Excel (4 formules)
2. Gebruik IF-OF-kombinasie met SEARCH-funksie om waarde met veelvuldige voorwaardes terug te gee
Hier het ek die selwaardes van die Produkte wat by die Lys pas kolomkriteria en het dit aan die Produk gewys op grond van daardie lys kolom.
Die formule is soos volg:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Formule-ontleding:
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Die SOEK -funksie het die waardes van die Lys -kolom in Sel B5 deursoek. Vir “ Chips ” het dit 11 teruggestuur wat die beginposisie van die substring is. Vir Koeldranke het dit 'n fout opgelewer.
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
Die ISNUMBER -funksie is omgeskakel 11 in WAAR waarde en die fout in ONWAAR waarde.
-
=IF(OR(TRUE,FALSE)),B5,"")
Die OF -funksie gee 'n WAAR -waarde terug as enige van die argumente WAAR is. Aangesien daar 'n WAAR -argument is, gee dit in hierdie geval ook die WAAR -waarde terug.
-
=IF(TRUE, "Ruffles - Chips","")
Aangesien die IF -funksie se waarde WAAR is, gee dit die eerste argument terug wat die verlangde uitvoer is.
Finale afvoer: Ruffles –Chips
Let wel:
- Hier het ek die sel gewys wat ooreenstem, maar jy kan enige uitset wys wat jy wil hê deur die te verander IF funksies uitvoer met jou verlangde uitset.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Die grootste voordeel van hierdie formule is dat dit nie 'n skikkingsformule is nie, maar dit word nie aanbeveel as jy baie selle in die Lys het aangesien jy elke sel van die Lys handmatig moet invoer.
- Vir hooflettersensitiewe situasies kan ons die onderstaande formule gebruik gebaseer op die VIND-funksie in plaas van die SOEK -funksie.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Lees meer: Excel as sel teks bevat, gee dan waarde terug (8 maklike maniere)
Soortgelyke lesings:
- Hoe om op te som as sel spesifieke teks in Excel bevat (6 maniere)
- Gebruik VLOOKUP as sel 'n woord in teks bevat in Excel
- Hoe om teks in 'n Excel-reeks te vind & gee selverwysing terug (3 maniere)
3. Gebruik TEXTJOIN-formule om waarde in 'n ander sel terug te gee as 'n sel 'n teks uit 'n lys het
Hierdie formule is nuttig wanneer jy moet wys watter string of stringe uit die Lys pas .
Hier het ek die selwaardes van die LYS -kolom afgehaal waar hulle by die Produk pas en hulle na die Gepasde waarde van Lys
Die formule is soos volg:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
FormuleUiteensetting:
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
Hier, die Asterisk-teken ( * ) is 'n jokerteken. Dit het gesoek vir " Chips " en "Cold Drinks" substring binne Sel B5 wat " Ruffles – Chips "-string is.
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
Die COUNTIF -funksie het een vir elke substring-passing teruggegee. Aangesien “ Chips ” in Sel B5 gevind word, gee dit { 1:0 } terug.
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
Die IF -funksie het slegs die “ Chips ”-waarde teruggestuur aangesien slegs die eerste waarde van sy argument een = Waar<4 was>.
-
TEXTJOIN(", ",TRUE,{"Chips";""})
Die TEXTJOIN -funksie het niks hier gedoen nie aangesien slegs een waarde van die Lys is gepas. As daar baie waardes was om te pas, sou dit almal met kommas (,) tussen hulle teruggestuur het as 'n skeiding.
Finale afvoer: skyfies
Lees meer: As sel teks bevat, voeg dan teks in 'n ander sel by in Excel
4. Gebruik 'n INDEX MATCH-formule om waarde terug te gee as sel spesifieke teks bevat
Dit is 'n alternatief vir die TEXTJOIN -formule. Hierdie formule wys ook watter string of stringe van die Lys gepas het.
Hier het ek die selwaardes van die LYS -kolom gaan haal waar dit by die <3 pas>Produk en hulle gewys na die Aangepaste waarde van Lys kolom.
Die formule is soos volg:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
Formule-ontleding:
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
Hier is die Asterisk teken ( * ) 'n wildcard karakter. Dit het gesoek vir " Chips " en " Cold Drinks " substring binne Sel B5 wat " Ruffles – Chips "-string is.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
Die COUNTIF -funksie het een vir elke substring-passing teruggegee. Aangesien “ Chips ” in Sel B5 gevind word, gee dit { 1:0 } terug.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
Die MATCH -funksie het een teruggegee aangesien daar net een waarde " Chips " is wat ooreenstem.
-
IFERROR(INDEX($E$5:$E$6,1),"")
Die INDEKS -funksie het “ Chips ” teruggestuur aangesien dit die waarde in die Lys -skikking was.
-
IFERROR("Chips","")
Hier word die IFERROR -funksie gebruik om die fout te hanteer wat sal voorkom as daar geen passings is nie .
Finale afvoer: skyfies
Let wel:
Hier het ek die sel gewys wat ooreenstem, maar jy kan wys enige uitset soos jy wil deur die IF funksies afvoer te verander met jou verlangde uitset.
Lees Meer: Excel Formule As Cell Contains Text Then Return Value in Nog 'n sel
5. Pas PRESIESE funksie toe met IF en TEXTJOIN
Dit is nog 'n oplossing vir hierdie probleem in verskillende situasies. Hier het ek die selwaarde van die Lys-kolom met 'n enkele lid gehaal. Ons pas hierdie waarde met die produk en het al die paswaardes in 'n enkele sel gewys.
Die formule is soosvolg:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Formule-ontleding :
-
EXACT(C5:C14,$F$5)
Hierdie deel kontroleer watter waardes van die Reik C5:14 ooreenstem met Sel F5 en gee WAAR en ONWAAR .
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Hierdie deel gee die name terug waarvoor ons WAAR kry.
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Laastens sluit dit al die name aan met 'n komma na elke naam.
Vinnige Notas
Al hierdie formules hier (behalwe die 2de een) is skikkingsformules. Dit beteken dat jy Ctrl+Shift+Enter moet druk in plaas daarvan om net die Enter -knoppie te druk om hierdie formule in te voer. Maar as jy 'n Office 365 gebruiker is, dan kan jy dit toepas deur net Enter te druk.
Gevolgtrekking
In hierdie artikel het ek verskillende formules vir verskillende gevalle verklein om waarde terug te gee as 'n sel spesifieke teks uit 'n lys bevat. Ek hoop jy kon 'n oplossing vir jou probleem vind. Laat asseblief 'n opmerking as jy enige voorstelle of vrae het. Boonop kan jy ons blog besoek vir meer sulke artikels.