Innholdsfortegnelse
Hvis du har en tekstliste og ønsker å søke i celler og returnere verdier basert på listen, må du lage en formel fordi Excel ikke gir en enkel måte å gjøre det på. I denne artikkelen har jeg tatt opp dette problemet og gitt fem forskjellige formler for å utføre denne operasjonen, slik at du kan velge den perfekte for din situasjon, og returnere verdien hvis cellen inneholder bestemt tekst fra en liste.
Last ned øvelsesarbeidsbok
Du kan laste ned arbeidsboken som jeg brukte i denne artikkelen fra følgende knapp og øve med den selv.
Hvis cellen inneholder tekst fra List.xlsx
Introduksjon til funksjoner som brukes i denne artikkelen
Formlene som jeg brukte her bruker følgende funksjoner:
- COUNTIFS-funksjonen:
Denne funksjonen teller celler som samsvarer med flere kriterier. Syntaksen til COUNTIFS-funksjonen er som følger.
=COUNTIFS (område1, kriterie1, [område2], [criteria2], …)
- område1 – Det første området som skal evalueres.
- kriterium1 – kriteriet som skal brukes på det første området.
- område2 [valgfritt]: Det andre området fungerer akkurat som område1.
- kriterier2 [valgfritt]: Kriteriet som skal brukes på 2. rekkevidde. Denne funksjonen tillater maksimalt 127 områder og kriteriepar .
- TEXTJOIN-funksjonen:
Denne funksjonen blir med tekstverdier med en skilletegn. Syntaksen til TEXTJOIN-funksjonen er som følger.
=TEXTJOIN (skilletegn, ignorer_tom, tekst1, [tekst2], …)
- delimiter: Separatoren mellom tekster som funksjonen skal kombinere.
- ignore_empty: Dette argumentet spesifiserer om funksjonen ignorerer den tomme celler eller ikke.
- tekst1: Første tekstverdi (eller område).
- tekst2 [valgfritt]: 2. tekstverdi (eller område) .
- MATCH-funksjonen:
Denne funksjonen får posisjonen til et element i en matrise. Syntaksen til MATCH-funksjonen er som følger.
=MATCH (oppslagsverdi, oppslagsmatrise, [samsvarstype])
- oppslagsverdi: Verdien som skal samsvare i oppslagsmatrise .
- oppslagsmatrise: Et område med celler eller en matrisereferanse.
- match_type [valgfritt]: 1 = eksakt eller nest minste, 0 = eksakt samsvar, -1 = eksakt eller nest størst. Som standard er match_type=1.
- INDEX-funksjonen:
Denne funksjonen henter verdier i en liste eller tabell basert på plassering . Syntaksen til INDEKS-funksjonen er som følger.
=INDEKS (matrise, rad_nummer, [kolnummer], [arealnummer])
- array: Rekkevidde av celler, eller en matrisekonstant.
- row_num: Radposisjonen i referansen.
- col_num [valgfritt] : Kolonneposisjonen i referansen.
- area_num [valgfritt]: Områdeti referanse som skal brukes.
- IFERROR-funksjonen:
Denne funksjonen fanger opp og håndterer feil. Syntaksen til IFERROR-funksjonen er som følger.
=IFERROR (verdi, verdi_hvis_feil)
- verdi: Verdien, referansen eller formelen for å se etter en feil.
- value_if_error: Verdien som skal returneres hvis en feil blir funnet.
- SØK-funksjonen:
Denne funksjonen henter plasseringen av tekst i en streng. Syntaksen til SØK-funksjonen er som følger.
=SØK (finn_tekst, innenfor_tekst, [startnummer])
- finn_tekst : Dette argumentet spesifiserer hvilken tekst som skal finne.
- innen_tekst: Dette spesifiserer hvor teksten skal finne.
- startnummer [valgfritt]: Med denne vil du spesifisere- fra hvilken posisjon i tekststrengen du skal telle posisjonen til den angitte teksten. Valgfritt og er standard 1 fra venstre.
5 formler for å returnere verdi i Excel Hvis en celle inneholder bestemt tekst fra en liste
Jeg vil forsøke å presentere et virkelighetseksempel i dette datasettet. Noen drikkevarer er representert her. Chips , Kalde drikker og Kornblandinger er de tre kategoriene av drikkevarer i dette datasettet. I en enkelt kolonne kalt Alle produkter , er navnet og kategoriene til drikkevarene knyttet sammen. To av disse kategoriene, Chips og ColdDrinker er også i kolonnen Liste . Basert på Liste -kolonnen, vil ønsket utdata vises i den andre kolonnen.
1. Kombiner COUNTIF, IF & ELLER funksjoner for å returnere verdi hvis en celle inneholder en tekst fra en liste
Dette er den mest nyttige formelen hvis du vil returnere verdien til hele cellen etter treffet.
Her har jeg hentet celleverdiene til Produktene som samsvarte med Liste -kolonnekriteriene og vist dem til Produktet basert på den listen kolonnen.
Formelen er som følger:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Formeloversikt:
-
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Her, stjernetegnet ( * ) er et jokertegn. Den søkte etter « Chips » og «Cold Drinks» understreng innenfor Cell B5 som er "
Ruffles - Chips
"
streng.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
COUNTIF -funksjonen returnerte én for hver delstrengmatch. Ettersom "
Chips
"
finnes i celle B5 , returnerer den { 1:0 }.
-
=IF(OR({1;0}), B5, "")
ELLER -funksjonen returnerer en TRUE -verdi hvis noen av argumentene er TRUE . I dette tilfellet er en (1)= TRUE .
-
=IF(TRUE, "Ruffles - Chips", "")
Som IF funksjonens verdi er TRUE , den returnerer det første argumentet som er ønsket utdata.
Endelig Utgang : Ruffles – Chips
Merk:
Her har jeg vistcelle som samsvarte, men du kan vise hvilken som helst utgang ved å endre IF -funksjonens utgang med ønsket utgang.
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),TRUE,FALSE)
Les mer: Hvis celle inneholder Word, så tildel verdi i Excel (4 formler)
2. Bruk IF-OR-kombinasjon med SEARCH-funksjonen for å returnere verdi med flere betingelser
Her har jeg hentet celleverdiene til produktene som samsvarte med listen kolonnekriterier og viste dem til Produkt basert på den listen kolonnen.
Formelen er som følger:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Formeloversikt:
-
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
SØK -funksjonen søkte etter verdiene til Liste -kolonnen i celle B5 . For « Chips » returnerte den 11 som er startposisjonen til delstrengen. For Kalde drikker , returnerte den en feil.
-
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
ISNUMBER -funksjonen konvertert 11 til TRUE -verdi og feilen til FALSE -verdi.
-
=IF(OR(TRUE,FALSE)),B5,"")
ELLER -funksjonen returnerer en TRUE -verdi hvis noen av argumentene er TRUE . Siden det er et TRUE -argument, returnerer det også TRUE -verdien i dette tilfellet.
-
=IF(TRUE, "Ruffles - Chips","")
Siden HVIS -funksjonens verdi er TRUE , returnerer den det første argumentet som er ønsket utdata.
Endelig utgang: Ruffles –Chips
Merk:
- Her har jeg vist cellen som matchet, men du kan vise hvilken som helst utgang ved å endre IF funksjoner utgang med ønsket utgang.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Den største fordelen med dette formelen er at dette ikke er en matriseformel, men det anbefales ikke hvis du har mange celler i listen , da du må angi hver celle i listen manuelt.
- For store og små bokstaver kan vi bruke formelen nedenfor basert på FINN-funksjonen i stedet for SØK -funksjonen.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Les mer: Excel hvis celle inneholder tekst og returner verdi (8 enkle måter)
Lignende avlesninger:
- Hvordan summere hvis celle inneholder spesifikk tekst i Excel (6 måter)
- Bruk VLOOKUP hvis celle inneholder et ord i tekst i Excel
- Hvordan finne tekst i et Excel-område & returnere cellereferanse (3 måter)
3. Bruk TEXTJOIN-formel for å returnere verdi i en annen celle hvis en celle har en tekst fra en liste
Denne formelen er nyttig når du skal vise hvilken eller hvilke strenger fra listen som samsvarte .
Her har jeg hentet celleverdiene fra LIST -kolonnen der de samsvarte med Produktet og vist dem til Matched-verdien fra List kolonne.
Formelen er som følger:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"), $E$5:$E$6,""))
FormelFordeling:
-
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5,"*"&$E$5:$E$6&"*"),$E$5:$E$6,""))
Her, stjernetegnet ( * ) er et jokertegn. Den søkte etter « Chips » og «Cold Drinks» understreng i celle B5, som er « Ruffles – Chips »-streng.
-
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
COUNTIF -funksjonen returnerte én for hver delstrengmatch. Ettersom « Chips » finnes i celle B5 , returnerer den { 1:0 }.
-
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
HVIS -funksjonen returnerte bare « Chips »-verdien ettersom bare den første verdien av argumentet var én = True .
-
TEXTJOIN(", ",TRUE,{"Chips";""})
TEXTJOIN -funksjonen gjorde ikke noe her som bare én verdi fra Liste ble matchet. Hvis det var mange verdier å matche, ville det ha returnert alle med kommaer (,) mellom dem som skilletegn.
Endelig utgang: Chips
Les mer: Hvis celle inneholder tekst, legg til tekst i en annen celle i Excel
4. Bruk en INDEX MATCH-formel for å returnere verdi hvis cellen inneholder spesifikk tekst
Dette er et alternativ til TEXTJOIN -formelen. Denne formelen viser også hvilken eller hvilke strenger fra Listen som samsvarte.
Her har jeg hentet celleverdiene fra LIST -kolonnen der de samsvarte med Produkt og viste dem til kolonnen Matchet verdi fra Liste .
Formelen er som følger:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6&"*"), 0)),"")
Formeloversikt:
-
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5,"*"&$E$5:$E$6&"*"),0)),"")
Her er stjernetegnet ( * ) en jokertegn. Den søkte etter « Chips » og « Cold Drinks » understreng innenfor Cell B5 som er « Ruffles – Chips »-strengen.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
COUNTIF -funksjonen returnerte én for hver delstrengmatch. Ettersom « Chips » finnes i celle B5 , returnerer den { 1:0 }.
-
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
MATCH -funksjonen returnerte én ettersom det bare er én verdi « Chips » som samsvarte.
-
IFERROR(INDEX($E$5:$E$6,1),"")
INDEKS -funksjonen returnerte « Chips » ettersom den var verdien i List -matrisen.
-
IFERROR("Chips","")
Her brukes IFERROR -funksjonen til å håndtere feilen som vil oppstå hvis det ikke er noen treff .
Endelig utgang: Chips
Merk:
Her har jeg vist cellen som matchet, men du kan vise hvilken som helst utgang som du vil ved å endre HVIS funksjonsutdata med ønsket utgang.
Les mer: Excel-formel Hvis celle inneholder tekst, returner deretter verdi i En annen celle
5. Bruk EXACT Function med IF og TEXTJOIN
Dette er en annen løsning på dette problemet i forskjellige situasjoner. Her har jeg hentet celleverdien fra Liste-kolonnen med et enkelt medlem. Vi matcher denne verdien med produktet og viste alle samsvarsverdiene i en enkelt celle.
Formelen er somfølger:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Formeloversikt :
-
EXACT(C5:C14,$F$5)
Denne delen sjekker hvilke verdier av Range C5:14 som samsvarer med celle F5 og returnerer TRUE og USANN .
-
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Denne delen returnerer navnene som vi får SANN for.
-
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Til slutt slår dette sammen alle navnene med et komma etter hvert navn.
Hurtigmerknader
Alle disse formlene her (unntatt den andre) er matriseformler. Det betyr at du må trykke Ctrl+Shift+Enter i stedet for å bare trykke Enter -knappen for å skrive inn denne formelen. Men hvis du er en Office 365 -bruker, kan du bruke dem ved å trykke Enter.
Konklusjon
I denne artikkelen har jeg begrenset forskjellige formler for forskjellige tilfeller for å returnere verdi hvis en celle inneholder spesifikk tekst fra en liste. Jeg håper du klarte å finne en løsning på problemet ditt. Legg igjen en kommentar hvis du har forslag eller spørsmål. Dessuten kan du besøke vår blogg for flere slike artikler.