Sådan returneres værdi i Excel, hvis celle indeholder tekst fra liste

  • Del Dette
Hugh West

Hvis du har en liste med tekst og ønsker at søge i celler og returnere værdier baseret på listen, skal du oprette en formel, fordi Excel ikke giver dig en enkel måde at gøre det på. I denne artikel har jeg behandlet dette problem og givet fem forskellige formler til at udføre denne operation, så du kan vælge den perfekte til din situation og returnere værdien, hvis cellen indeholder en bestemt tekst.fra en liste.

Download arbejdsbog til øvelser

Du kan downloade den arbejdsbog, som jeg har brugt i denne artikel, fra følgende knap og øve dig med den selv.

Hvis celle indeholder tekst fra List.xlsx

Introduktion til de funktioner, der anvendes i denne artikel

De formler, som jeg har brugt her, bruger følgende funktioner:

  • Funktionen COUNTIFS:

Denne funktion tæller de celler, der opfylder flere kriterier. Syntaksen for COUNTIFS-funktion er som følger.

=COUNTIFS (område1, kriterier1, [område2], [kriterier2], ...)

  • række1 - Det første område, der skal evalueres.
  • kriterier1 - Det kriterium, der skal anvendes på det første område.
  • range2 [valgfrit]: Det andet område fungerer ligesom område 1.
  • kriterier2 [valgfri]: Det kriterium, der skal anvendes på det andet område. Denne funktion tillader højst 127 intervaller og kriterier parvis .
  • TEXTJOIN-funktionen:

Denne funktion sammenføjer tekstværdier med en afgrænser. Syntaksen for TEXTJOIN-funktion er som følger.

=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)

  • afgrænser: Adskilleren mellem de tekster, som funktionen skal kombinere.
  • ignore_empty: Dette argument angiver, om funktionen skal ignorere de tomme celler eller ej.
  • text1: 1. tekstværdi (eller interval).
  • text2 [valgfri]: 2. tekstværdi (eller interval).
  • MATCH-funktionen:

Denne funktion finder positionen for et element i et array. Syntaksen for MATCH-funktion er som følger.

=MATCH (lookup_value, lookup_array, [match_type])

  • lookup_value: Den værdi, der skal matches i opslagsbatteri .
  • lookup_array: Et område af celler eller en array-reference.
  • match_type [valgfri]: 1 = nøjagtig eller næstmindste, 0 = nøjagtig match, -1 = nøjagtig eller næststørste. Som standard er match_type=1.
  • INDEX-funktionen:

Denne funktion henter værdier i en liste eller tabel baseret på placering. Syntaksen for INDEX-funktion er som følger.

=INDEX (array, row_num, [col_num], [area_num])

  • array: Område af celler eller en arraykonstant.
  • row_num: Rækkepositionen i referencen.
  • col_num [valgfrit] : Kolonnepositionen i referencen.
  • area_num [valgfrit]: Det referenceområde, der skal anvendes.
  • IFERROR-funktionen:

Denne funktion opfanger og håndterer fejl. Syntaksen for IFERROR-funktion er som følger.

=IFERROR (værdi, value_if_error)

  • værdi: Den værdi, reference eller formel, der skal kontrolleres for en fejl.
  • value_if_error: Den værdi, der skal returneres, hvis der er fundet en fejl.
  • Funktionen SØGNING:

Denne funktion finder placeringen af teksten i en streng. Syntaksen for SØG-funktion er som følger.

=SEARCH (find_text, within_text, [start_num])

  • find_text : Dette argument angiver, hvilken tekst der skal findes.
  • within_text: Her angives det, hvor teksten skal findes.
  • start_nummer [valgfri]: Hermed angiver du, fra hvilken position i tekststrengen du vil tælle positionen for den angivne tekst. Valgfrit og standard er 1 fra venstre.

5 formler til at returnere værdien i Excel, hvis en celle indeholder en bestemt tekst fra en liste

Jeg vil forsøge at præsentere et eksempel fra det virkelige liv i dette datasæt. Nogle drikkevarer er repræsenteret her. Chips , Kolde drikkevarer , og Korn er de tre kategorier af drikkevarer i dette datasæt. I en enkelt kolonne kaldet Alle produkter er navnet og kategorierne på drikkevarerne knyttet sammen. To af disse kategorier, Chips og Kolde drikkevarer , er også n den Liste kolonne. Baseret på den Liste kolonnen, vises det ønskede output i den anden kolonne.

1. Kombiner COUNTIF, IF & OR-funktioner for at returnere værdien, hvis en celle indeholder en tekst fra en liste

Dette er den mest nyttige formel, hvis du ønsker at returnere værdien af hele cellen efter matchet.

Her har jeg hentet celleværdierne i Produkter der passede til den Liste kolonnekriterier og viste dem til den Produkt baseret på denne liste kolonne.

Formlen er som følger:

=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

Opdeling af formler:

  • =IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")

Her er det Asterisk-tegn ( * ) er et wildcard-tegn. Der blev søgt efter " Chips " og "kolde drikkevarer" understreng inden for Celle B5 som er " Ruffles - Chips " streng.

  • =IF(OR(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")

COUNTIF funktionen returnerede en for hver delstrengsoverensstemmelse. Som " Chips " findes i Celle B5 , den returnerer { 1:0 }.

  • =IF(OR({1;0}), B5, "")

ELLER funktionen returnerer en TRUE værdi, hvis et af argumenterne er TRUE . I dette tilfælde er en (1)= TRUE .

  • =IF(TRUE, "Ruffles - Chips", "")

Som den IF funktionens værdi er TRUE returnerer den det første argument, som er det ønskede output.

Endelig Udgang : Ruffles - Chips

Bemærk:

Her har jeg vist den celle, der matchede, men du kan vise et hvilket som helst output, som du vil, ved at ændre IF funktioner output med det ønskede output.

=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)

Læs mere: Hvis cellen indeholder et ord, tildeles værdien i Excel (4 formler)

2. Brug IF-OR-kombination med SEARCH-funktion til at returnere værdi med flere betingelser

Her har jeg hentet celleværdierne i Produkter der passede til den Liste kolonnekriterier og viste dem til den Produkt baseret på denne liste kolonne.

Formlen er som følger:

=IF(OR(ISNUMBER(SEARCH($E$5,B5))),ISNUMBER(SEARCH($E$6,B5))),B5,"")

Opdeling af formler:

  • =IF(OR(ISNUMBER(SEARCH($E$5,B5))),ISNUMBER(SEARCH($E$6,B5))),B5,"")

SØG funktionen søgte værdierne i Liste kolonne i Celle B5 . for " Chips " den returnerede 11 som er startpositionen for delstrengen. For Kolde drikkevarer , returnerede den en fejl.

  • =IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VÆRDI))),B5,""")

ISNUMBER funktion konverteret 11 til TRUE værdi og fejlen i FALSK værdi.

  • =IF(OR(TRUE,FALSE)),B5,""")

ELLER funktionen returnerer en TRUE værdi, hvis et af argumenterne er TRUE . da der er en TRUE argumentet, returnerer den også TRUE værdi i dette tilfælde.

  • =IF(TRUE, "Ruffles - Chips","")

Som den IF funktionens værdi er TRUE returnerer den det første argument, som er det ønskede output.

Slutresultat: Ruffles - Chips

Bemærk:

  • Her har jeg vist den celle, der matchede, men du kan vise et hvilket som helst output, du ønsker, ved at ændre IF funktioner output med det ønskede output.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)

  • Den største fordel ved denne formel er, at det ikke er en array-formel, men den anbefales ikke, hvis du har mange celler i Liste da du skal indtaste hver celle i Liste manuelt.
  • I situationer, hvor der tages hensyn til store og små bogstaver, kan vi bruge nedenstående formel baseret på FIND-funktion i stedet for den SØG funktion.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")

Læs mere: Excel Hvis celle indeholder tekst, returnerer du værdien (8 nemme måder)

Lignende læsninger:

  • Sådan summerer du, hvis cellen indeholder specifik tekst i Excel (6 måder)
  • Brug VLOOKUP, hvis cellen indeholder et ord i tekst i Excel
  • Sådan finder du tekst i et Excel-område & returnér cellehenvisning (3 måder)

3. Brug TEXTJOIN-formlen til at returnere værdien i en anden celle, hvis en celle har en tekst fra en liste

Denne formel er nyttig, når du skal vise, hvilken eller hvilke strenge fra Liste matchede.

Her har jeg hentet celleværdierne fra LISTE kolonne, hvor de matchede med den Produkt og viste dem til den matchede værdi fra Liste kolonne.

Formlen er som følger:

=TEXTJOIN(", ", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,""))

Opdeling af formler:

  • =TEXTJOIN(", ", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,""))

Her er det Asterisk-tegn ( * ) er et wildcard-tegn. Der blev søgt efter " Chips " og "Kolde drikkevarer" understrengen i celle B5, som er " Ruffles - Chips " streng.

  • TEXTJOIN(", ", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))

COUNTIF funktionen returnerede en for hver delstrengsoverensstemmelse. Som " Chips " findes i Celle B5 , den returnerer { 1:0 }.

  • TEXTJOIN(", ", ",TRUE,IF({1;0},$E$5:$E$6,"")))

IF funktionen returnerede kun " Chips " værdi, da kun den første værdi af dens argument var en = True .

  • TEXTJOIN(", ", ",TRUE,{"Chips";""})

TEXTJOIN funktionen gjorde ikke noget her, da kun én værdi fra Liste Hvis der var mange værdier at matche, ville den have returneret dem alle med kommaer (,) mellem dem som separator.

Slutresultat: Chips

Læs mere: Hvis celle indeholder tekst, tilføj da tekst i en anden celle i Excel

4. Brug en INDEX MATCH-formel til at returnere værdien, hvis cellen indeholder en bestemt tekst

Dette er et alternativ til den TEXTJOIN formlen. Denne formel viser også, hvilken eller hvilke strenge eller strenge fra Liste matchede.

Her har jeg hentet celleværdierne fra LISTE kolonne, hvor de matchede med den Produkt og viste dem til den matchede værdi fra Liste kolonne.

Formlen er som følger:

=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),""),"")

Opdeling af formler:

  • =IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),""),"")

Her er det Asterisk-tegn ( * ) er et wildcard-tegn. Der blev søgt efter " Chips " og " Kolde drikkevarer " delstreng inden for Celle B5 som er " Ruffles - Chips " streng.

  • IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Chips*,*Cold Drinks*),0)),""),"")

COUNTIF funktionen returnerede en for hver delstrengsoverensstemmelse. Som " Chips " findes i Celle B5 , den returnerer { 1:0 }.

  • IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),""))

MATCH funktionen returnerede én, da der kun findes én værdi " Chips ", der passede.

  • IFERROR(INDEX($E$5:$E$6,1),""")

INDEX funktionen returnerede " Chips ", da det var værdien i den Liste array.

  • IFERROR("Chips","")

Her er det IFERROR funktionen bruges til at håndtere den fejl, der opstår, hvis der ikke er nogen match.

Slutresultat: Chips

Bemærk:

Her har jeg vist den celle, der matchede, men du kan vise et hvilket som helst output, som du vil, ved at ændre IF funktioner output med det ønskede output.

Læs mere: Excel-formel Hvis celle indeholder tekst, returneres værdien i en anden celle

5. Anvend EXACT-funktionen med IF og TEXTJOIN

Dette er en anden løsning på dette problem i forskellige situationer. Her har jeg hentet celleværdien fra kolonnen Liste med et enkelt medlem. Vi matcher denne værdi med Produktet og viste alle matchværdierne i en enkelt celle.

Formlen er som følger:

=TEXTJOIN(", ", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))

Opdeling af formler :

  • EXACT(C5:C14,$F$5)

Denne del kontrollerer, hvilke værdier af Område C5:14 matcher med Celle F5 og returnerer TRUE og FALSK .

  • IF(EXACT(C5:C14,$F$5),B5:B14,"")

Denne del returnerer de navne, for hvilke vi får TRUE .

  • TEXTJOIN(", ", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))

Endelig samler dette alle navnene med et komma efter hvert navn.

Hurtige noter

Alle disse formler her (undtagen den anden) er array-formler. Det betyder, at du skal trykke på Ctrl+Shift+Enter i stedet for kun at trykke på Indtast knappen til at indtaste denne formel. Men hvis du er en Office 365 bruger, så kan du anvende dem ved blot at trykke på Indtast.

Konklusion

I denne artikel har jeg indsnævret forskellige formler til forskellige tilfælde for at returnere værdi, hvis en celle indeholder specifik tekst fra en liste. Jeg håber, at du kunne finde en løsning på dit problem. Efterlad venligst en kommentar, hvis du har forslag eller spørgsmål. Desuden kan du besøge vores blog for flere af disse artikler.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.