Sisällysluettelo
Jos sinulla on tekstiluettelo ja haluat etsiä soluja ja palauttaa arvoja luettelon perusteella, sinun on laadittava kaava, koska Excel ei tarjoa yksinkertaista tapaa tehdä niin. Tässä artikkelissa olen käsitellyt tätä asiaa ja antanut viisi erilaista kaavaa tämän toiminnon suorittamiseksi, jotta voit valita tilanteeseesi täydellisen kaavan ja palauttaa arvon, jos solu sisältää tiettyä tekstiä.luettelosta.
Lataa harjoituskirja
Voit ladata tässä artikkelissa käyttämäni työkirjan seuraavasta painikkeesta ja harjoitella sitä itse.
Jos solu sisältää tekstiä List.xlsx:stä
Tässä artikkelissa käytettyjen funktioiden esittely
Tässä käyttämissäni kaavoissa käytetään seuraavia funktioita:
- COUNTIFS-toiminto:
Tämä toiminto laskee solut, jotka täyttävät useita kriteerejä. COUNTIFS-toiminto on seuraava.
=COUNTIFS (alue1, kriteerit1, [alue2], [kriteerit2], ...)
- range1 - 1. arvioitava alue.
- kriteerit1 - Kriteeri, jota käytetään 1. alueella.
- range2 [valinnainen]: Toinen alue toimii kuten alue 1.
- kriteerit2 [valinnainen]: Kriteeri, jota käytetään 2. alueella. Tämä toiminto sallii enintään 127 kriteerin käytön. vaihteluvälit ja kriteeriparit .
- TEXTJOIN-toiminto:
Tämä toiminto yhdistää tekstiarvot erottimella. Funktio TEXTJOIN-toiminto on seuraava.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...).
- erotin: Tekstien välinen erotin, jonka funktio aikoo yhdistää.
- ignore_empty: Tämä argumentti määrittää, jättääkö funktio tyhjät solut huomiotta vai ei.
- text1: 1. tekstiarvo (tai -alue).
- text2 [valinnainen]: 2. tekstiarvo (tai -alue).
- MATCH-funktio:
Tämä funktio hakee kohteen sijainnin matriisissa. Toiminnon syntaksi on MATCH-toiminto on seuraava.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: Vastaava arvo kohdassa lookup_array .
- lookup_array: Solualue tai matriisiviittaus.
- match_type [valinnainen]: 1 = tarkka tai seuraavaksi pienin, 0 = tarkka vastaavuus, -1 = tarkka tai seuraavaksi suurin. Oletuksena match_type=1.
- INDEX-toiminto:
Tämä funktio hakee arvoja luettelosta tai taulukosta sijainnin perusteella. INDEX-toiminto on seuraava.
=INDEX (array, row_num, [col_num], [area_num])
- array: Solujen alue tai joukkovakio.
- row_num: Rivin sijainti viitteessä.
- col_num [valinnainen] : Sarakkeen sijainti viitteessä.
- area_num [valinnainen]: Käytettävä viitealue.
- IFERROR-funktio:
Tämä funktio ottaa kiinni ja käsittelee virheitä. IFERROR-toiminto on seuraava.
=IFERROR (arvo, arvo_jos_virhe)
- arvo: Arvo, viittaus tai kaava, joka tarkistetaan virheen varalta.
- value_if_error: Arvo, joka palautetaan, jos virhe löytyy.
- HAKU-toiminto:
Tämä funktio hakee tekstin sijainnin merkkijonossa. Toiminnon syntaksi on SEARCH-toiminto on seuraava.
=SEARCH (find_text, within_text, [start_num])
- find_text : Tämä argumentti määrittää, mitä tekstiä etsitään.
- within_text: Tässä määritetään, mistä teksti löytyy.
- start_num [valinnainen]: Tällä määrittelet, mistä kohdasta tekstijonossa lasketaan määritetyn tekstin sijainti. Valinnainen ja oletusarvo on 1 vasemmalta.
5 kaavaa arvon palauttamiseksi Excelissä, jos solu sisältää tietyn tekstin luettelosta
Yritän esitellä todellisen esimerkin tästä tietokokonaisuudesta. Tässä on esitetty joitakin juomia. Chipsit , Kylmät juomat ja Viljat ovat tämän tietokokonaisuuden kolme juomaluokkaa. Yhdessä sarakkeessa nimeltä Kaikki tuotteet , juomien nimet ja luokat on yhdistetty toisiinsa. Kaksi näistä luokista, Chipsit ja Kylmät juomat ovat myös n Luettelo sarake. Perustuu Luettelo sarakkeessa, haluttu tuloste näkyy toisessa sarakkeessa.
1. Yhdistä COUNTIF, IF & OR-funktiot palauttaa arvon, jos solu sisältää tekstiä luettelosta.
Tämä on hyödyllisin kaava, jos haluat palauttaa koko solun arvon vastaavuuden jälkeen.
Tässä olen hakenut solun arvot solun Tuotteet joka vastasi Luettelo sarakkeen kriteerit ja näytti ne Tuote kyseisen luettelon perusteella sarake.
Kaava on seuraava:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Kaavan erittely:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Täällä Tähtimerkki ( * ) on jokerimerkki. Se etsii " Chipsit " ja "Kylmät juomat" -osaketjujen sisällä Solu B5 joka on "
Ruffles - Sipsit
"
merkkijono.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
The COUNTIF funktio palautti yhden jokaisesta osajonon osumasta. Koska "
Chipsit
"
löytyy Solu B5 , se palauttaa { 1:0 }.
=IF(OR({1;0}), B5, "")
The TAI funktio palauttaa TRUE arvo, jos jokin argumenteista on TRUE Tässä tapauksessa yksi (1)=. TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Koska IF funktion arvo on TRUE , se palauttaa ensimmäisen argumentin, joka on haluttu tulos.
Lopullinen Lähtö : Ruffles - Sipsit
Huom:
Tässä olen näyttänyt solun, joka täsmäsi, mutta voit näyttää minkä tahansa haluamasi tulosteen muuttamalla asetusta IF toimintojen ulostulo halutulla ulostulolla.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Lue lisää: Jos solu sisältää sanan, määritä arvo Excelissä (4 kaavaa)
2. Käytä IF-OR-yhdistelmää SEARCH-funktion kanssa palauttaaksesi arvon useilla ehdoilla.
Tässä olen hakenut solun arvot solun Tuotteet joka vastasi Luettelo sarakkeen kriteerit ja näytti ne Tuote kyseisen luettelon perusteella sarake.
Kaava on seuraava:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Kaavan erittely:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
The HAKU funktio etsi arvot Luettelo sarakkeessa Solu B5 . varten " Chipsit " se palasi 11 joka on merkkijonon alkuosio. Jos Kylmät juomat , se palautti virheen.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
The ISNUMBER funktio muunnettu 11 osoitteeseen TRUE arvo ja virhe FALSE arvo.
=IF(OR(TRUE,FALSE)),B5,"")
The TAI funktio palauttaa TRUE arvo, jos jokin argumenteista on TRUE Koska on olemassa TRUE argumentti, se palauttaa myös TRUE arvo tässä tapauksessa.
=IF(TRUE, "Ruffles - Chips","")
Koska IF funktion arvo on TRUE , se palauttaa ensimmäisen argumentin, joka on haluttu tulos.
Lopputulos: Ruffles - Chips
Huom:
- Tässä olen näyttänyt solun, joka täsmäsi, mutta voit näyttää minkä tahansa haluamasi tulosteen muuttamalla kenttää. IF toimintojen ulostulo halutulla ulostulolla.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Tämän kaavan tärkein etu on se, että tämä ei ole matriisikaava, mutta sitä ei suositella, jos sinulla on monta solua kentässä Luettelo koska sinun täytyy syöttää jokaiseen soluun Luettelo käsin.
- Isojen ja pienten kirjainten tilanteissa voimme käyttää alla olevaa kaavaa, joka perustuu muotoon FIND-toiminto sen sijaan, että HAKU toiminto.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Lue lisää: Excel Jos solu sisältää tekstiä, palauta arvo (8 helppoa tapaa)
Samanlaisia lukemia:
- Kuinka summaa, jos solu sisältää tietyn tekstin Excelissä (6 tapaa)
- Käytä VLOOKUPia, jos solu sisältää sanan Excelin tekstissä olevan tekstin sisällä
- Kuinka etsiä tekstiä Excel-alueella & palauttaa soluviittaus (3 tapaa)
3. Käytä TEXTJOIN-kaavaa palauttamaan arvo toiseen soluun, jos solussa on teksti luettelosta.
Tämä kaava on hyödyllinen, kun sinun on näytettävä, mikä merkkijono tai mitkä merkkijonot sarjasta Luettelo sovitettu.
Tässä olen hakenut solujen arvot tiedostosta LISTA sarakkeessa, jossa ne täsmäävät Tuote ja osoitti ne Matched-arvoon Luettelo sarake.
Kaava on seuraava:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,"")))
Kaavan erittely:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,"")))
Täällä Tähtimerkki ( * ) on jokerimerkki. Se etsii " Chipsit " ja "Kylmät juomat" osajono solun B5 sisällä, joka on " Ruffles - Sipsit " merkkijono.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,"")))
The COUNTIF funktio palautti yhden jokaisesta osajonon vastaavuudesta. Koska " Chipsit " löytyy Solu B5 , se palauttaa { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,"")))
The IF funktio palautti vain " Chipsit " arvo, koska vain sen argumentin ensimmäinen arvo oli yksi = Totta .
TEXTJOIN(", ",TRUE,{"Chips";""})
The TEXTJOIN funktio ei tehnyt tässä mitään, koska vain yksi arvo parametrista Luettelo Jos sovitettavia arvoja olisi ollut useita, se olisi palauttanut kaikki arvot, joiden välissä olisi ollut pilkku (,) erotinmerkkinä.
Lopputuotos: sirut
Lue lisää: Jos solu sisältää tekstiä, lisää tekstiä toiseen soluun Excelissä
4. Käytä INDEX MATCH -kaavaa palauttamaan arvo, jos solu sisältää tiettyä tekstiä.
Tämä on vaihtoehto TEXTJOIN Tämä kaava näyttää myös, mikä merkkijono tai mitkä merkkijonot ovat Luettelo sovitettu.
Tässä olen hakenut solujen arvot tiedostosta LISTA sarakkeessa, jossa ne täsmäävät Tuote ja osoitti ne Matched-arvoon Luettelo sarake.
Kaava on seuraava:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),"")
Kaavan erittely:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),"")
Täällä Tähtimerkki ( * ) on jokerimerkki. Se etsii " Chipsit " ja " Kylmät juomat " osajono sisällä Solu B5 joka on " Ruffles - Sipsit " merkkijono.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
The COUNTIF funktio palautti yhden jokaisesta osajonon vastaavuudesta. Koska " Chipsit " löytyy Solu B5 , se palauttaa { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0})),0)),"")
The MATCH funktio palautti yhden, koska on vain yksi arvo " Chipsit ", joka sopi yhteen.
IFERROR(INDEX($E$5:$E$6,1),"")
The INDEX funktio palautti " Chipsit ", koska se oli arvo Luettelo array.
IFERROR("Chips","")
Täällä IFERROR funktiota käytetään käsittelemään virhettä, joka tapahtuu, jos osumia ei löydy.
Lopputuotos: sirut
Huom:
Tässä olen näyttänyt solun, joka täsmäsi, mutta voit näyttää minkä tahansa haluamasi tulosteen muuttamalla asetusta IF toimintojen ulostulo halutulla ulostulolla.
Lue lisää: Excel-kaava Jos solu sisältää tekstiä, palauta arvo toiseen soluun
5. Sovelletaan EXACT-funktiota IF- ja TEXTJOIN-toimintojen kanssa.
Tämä on toinen ratkaisu tähän ongelmaan eri tilanteissa. Tässä olen hakenut solun arvon List-sarakkeesta, jossa on yksi jäsen. Vastaamme tätä arvoa tuotteeseen ja näytämme kaikki vastaavat arvot yhdessä solussa.
Kaava on seuraava:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"")))
Kaavan erittely :
EXACT(C5:C14,$F$5)
Tässä osassa tarkistetaan, mitkä arvot Alue C5:14 ottelu Solu F5 ja palaa TRUE ja FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Tämä osa palauttaa nimet, joille saamme TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"")))
Lopuksi yhdistetään kaikki nimet siten, että jokaisen nimen jälkeen on pilkku.
Pikamerkinnät
Kaikki nämä kaavat tässä (paitsi toinen) ovat array-kaavoja, mikä tarkoittaa, että sinun on painettava painiketta Ctrl+Shift+Enter sen sijaan, että painaisit vain Kirjoita painiketta tämän kaavan syöttämistä varten. Mutta jos olet Office 365 käyttäjä, voit soveltaa niitä painamalla vain Astu sisään.
Päätelmä
Tässä artikkelissa olen karsinut erilaisia kaavoja eri tapauksiin palauttaa arvo, jos solu sisältää tiettyä tekstiä luettelosta. Toivottavasti pystyit löytämään ratkaisun ongelmaasi. Jätä kommentti, jos sinulla on ehdotuksia tai kysymyksiä. Lisäksi voit vierailla meidän blogi lisää tällaisia artikkeleita.