Tartalomjegyzék
Ha van egy szöveges listája, és a listán alapuló cellákban szeretne keresni és értékeket visszaadni, akkor képletet kell készítenie, mivel az Excel nem biztosít erre egyszerű módot. Ebben a cikkben foglalkozom ezzel a kérdéssel, és öt különböző képletet adtam meg a művelet elvégzéséhez, hogy kiválaszthassa a helyzetének megfelelőt, és visszaadja az értéket, ha a cella tartalmaz bizonyos szöveget.egy listáról.
Gyakorlati munkafüzet letöltése
Az alábbi gombra kattintva letöltheted a munkafüzetet, amelyet ebben a cikkben használtam, és gyakorolhatsz vele.
Ha a cella tartalmaz szöveget a List.xlsx-ből
Bevezetés a cikkben használt funkciókhoz
Az itt használt képletek a következő függvényeket használják:
- A COUNTIFS funkció:
Ez a függvény a több kritériumnak megfelelő cellákat számolja. A szintaxis a COUNTIFS funkció a következő.
=COUNTIFS (range1, criteria1, [range2], [criteria2], ...)
- range1 - Az 1. értékelendő tartomány.
- kritériumok1 - Az 1. tartományra vonatkozó kritérium.
- range2 [opcionális]: A 2. tartomány ugyanúgy viselkedik, mint a range1.
- kritérium2 [opcionális]: A 2. tartományban használandó kritérium. Ez a funkció legfeljebb 127 értéket engedélyez. tartományok és kritériumpárok .
- A TEXTJOIN funkció:
Ez a függvény szöveges értékeket köt össze egy elválasztójellel. A szintaxis a TEXTJOIN funkció a következő.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- elhatároló: A szövegek közötti elválasztójel, amelyet a függvény kombinálni fog.
- ignore_empty: Ez az argumentum határozza meg, hogy a függvény figyelmen kívül hagyja-e az üres cellákat vagy sem.
- text1: 1. szöveges érték (vagy tartomány).
- text2 [opcionális]: 2. szöveges érték (vagy tartomány).
- A MATCH funkció:
Ez a függvény egy elem pozícióját kapja meg egy tömbben. A szintaxis a MATCH funkció a következő.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: A megfeleltetendő érték a lookup_array .
- lookup_array: Egy cellatartomány vagy egy tömbhivatkozás.
- match_type [opcionális]: 1 = pontos vagy a következő legkisebb, 0 = pontos egyezés, -1 = pontos vagy a következő legnagyobb. Alapértelmezés szerint a match_type=1.
- Az INDEX funkció:
Ez a függvény egy listában vagy táblázatban lévő értékeket kapja meg a hely alapján. A szintaxis a INDEX funkció a következő.
=INDEX (array, row_num, [col_num], [area_num])
- tömb: Cellák tartománya vagy egy tömbi konstans.
- row_num: A sor pozíciója a hivatkozásban.
- col_num [opcionális] : Az oszlop pozíciója a hivatkozásban.
- area_num [opcionális]: A referencia tartomány, amelyet használni kell.
- Az IFERROR funkció:
Ez a függvény hibacsapdákat állít fel és kezeli a hibákat. A szintaxis a IFERROR funkció a következő.
=IFERROR (érték, érték_if_hiba)
- érték: Az érték, hivatkozás vagy képlet, amelyet hiba esetén ellenőrizni kell.
- value_if_error: A hiba esetén visszaadandó érték.
- A KERESÉS funkció:
Ez a függvény a szöveg helyét kapja meg egy karakterláncban. A szintaxis a SEARCH funkció a következő.
=SEARCH (find_text, within_text, [start_num])
- find_text : Ez az argumentum adja meg, hogy milyen szöveget keressen.
- within_text: Ez adja meg, hogy hol találja meg a szöveget.
- start_num [opcionális]: Ezzel megadod, hogy a szöveges karakterlánc melyik pozíciójától számolod a megadott szöveg pozícióját. Opcionális és alapértelmezett értéke 1 balról.
5 képlet az Excel értékének visszaadásához, ha egy cella tartalmaz bizonyos szöveget egy listából származó listából
Megpróbálok egy valós példát bemutatni ebben az adatkészletben. Néhány italt ábrázolunk itt. Chips , Hideg italok , és Gabonafélék az italok három kategóriája ebben az adatkészletben. Egyetlen oszlopban, az úgynevezett Minden termék , az italok neve és kategóriái össze vannak kapcsolva. Két ilyen kategória, Chips és Hideg italok , szintén n a Lista oszlop. A Lista oszlopban, a kívánt kimenet a második oszlopban jelenik meg.
1. Kombinálja a COUNTIF, IF & OR függvényeket az érték visszaadásához, ha egy cella tartalmaz egy szöveget egy listából.
Ez a leghasznosabb képlet, ha a teljes cella értékét szeretné visszaadni az egyezés után.
Itt a cellák értékeit a következő cellákból hívtam le Termékek amely megegyezik a Lista oszlop kritériumai és megmutatta őket a Termék e lista alapján oszlop.
A képlet a következő:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Formula bontás:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Itt a Csillag jel ( * ) egy helyettesítő karakter. A " Chips " és "Hideg italok" részlánc belül B5 sejt ami "
Ruffles - Chips
"
zsinór.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Hideg italok*)), B5, "")
A COUNTIF függvény minden egyes részlánc egyezéshez visszaadott egyet. Mivel a "
Chips
"
megtalálható a B5 sejt , akkor visszatér { 1:0 }.
=IF(OR({1;0}), B5, "")
A VAGY függvény visszatér egy TRUE érték, ha bármelyik argumentum TRUE Ebben az esetben egy (1) = TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Mivel a IF függvény értéke TRUE , az első argumentumot adja vissza, amely a kívánt kimenet.
Végleges Kimenet : Ruffles - Chips
Megjegyzés:
Itt azt a cellát mutattam meg, amelyik megfelelt, de bármilyen kimenetet meg tudsz mutatni, ha megváltoztatod a IF funkciók kimenete a kívánt kimenettel.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Bővebben: Ha a cella szót tartalmaz, akkor értéket rendel az Excelben (4 képlet)
2. Használja az IF-OR kombinációt a SEARCH funkcióval a több feltételhez tartozó érték visszaadásához
Itt a cellák értékeit a következő cellákból hívtam le Termékek amely megegyezik a Lista oszlop kritériumai és megmutatta őket a Termék e lista alapján oszlop.
A képlet a következő:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)))),B5,"")
Formula bontás:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5)))),B5,"")
A KERESÉS függvény megkereste a Lista oszlop a B5 sejt . mert " Chips " visszatért 11 amely a részlánc kezdőpozíciója. A következő esetben Hideg italok , hibát adott vissza.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE)))),B5,"")
A ISNUMBER funkció átalakítva 11 a címre. TRUE értéket és a hibát a HAMIS érték.
=IF(OR(TRUE,FALSE)),B5,"")
A VAGY függvény visszatér egy TRUE érték, ha bármelyik argumentum TRUE Mivel van egy TRUE argumentummal, akkor is visszaadja a TRUE érték ebben az esetben.
=IF(TRUE, "Ruffles - Chips","")
Mivel a IF függvény értéke TRUE , az első argumentumot adja vissza, amely a kívánt kimenet.
Végeredmény: Ruffles - Chips
Megjegyzés:
- Itt azt a cellát mutattam meg, amelyik megfelelt, de bármilyen kimenetet megjeleníthet, ha megváltoztatja a IF funkciók kimenete a kívánt kimenettel.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Ennek a képletnek az a fő előnye, hogy ez nem egy tömbképlet, de nem ajánlott, ha sok cellája van a Lista mivel minden egyes cellába be kell írni a Lista kézzel.
- Nagy- és kisbetűs helyzetekben az alábbi képletet használhatjuk a FIND funkció a KERESÉS funkció.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Bővebben: Excel Ha a cella tartalmaz szöveget, akkor adja vissza az értéket (8 egyszerű módja)
Hasonló olvasmányok:
- Hogyan lehet összegezni, ha a cella tartalmaz egy adott szöveget az Excelben (6 mód)
- A VLOOKUP használata, ha a cella egy szót tartalmaz az Excel szövegén belül
- Hogyan találhat szöveget egy Excel tartományban & cellahivatkozás visszaadása (3 mód)
3. A TEXTJOIN képlet használata egy másik cellában lévő érték visszaadására, ha egy cellában egy listából származó szöveg van
Ez a képlet akkor hasznos, ha meg kell mutatnia, hogy milyen karakterláncot vagy karakterláncokat tartalmaz a Lista egyezett.
Itt a cellák értékeit a következő cellákból hívtam le LIST oszlopban, ahol egyeznek a Termék és megmutatta nekik a Matched értéket a Lista oszlop.
A képlet a következő:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,"")))
Formula bontás:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,"")))
Itt a Csillag jel ( * ) egy joker karakter. A " Chips " és a "Hideg italok" részlánc a B5 cellán belül, amely " Ruffles - Chips " string.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Hideg italok*),$E$5:$E$6,"")))
A COUNTIF függvény minden egyes részlánc egyezéshez visszaadott egyet. Mivel " Chips " található a B5 sejt , akkor visszatér { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,""))
A IF függvény csak a " Chips " értéket, mivel csak az argumentum első értéke volt egy = Igaz .
TEXTJOIN(", ",TRUE,{"Chips";""})
A TEXTJOIN függvény itt nem csinált semmit, mivel csak egy értéket a Lista Ha sok értéket kellett volna megfeleltetni, akkor az összeset visszaadta volna, vesszővel (,) elválasztóként.
Végtermék: chipek
Bővebben: Ha a cella tartalmaz szöveget, akkor adjon hozzá szöveget egy másik cellában az Excelben
4. INDEX MATCH képlet használata az érték visszaadásához, ha a cella tartalmaz egy adott szöveget
Ez egy alternatívája a TEXTJOIN Ez a képlet azt is megmutatja, hogy milyen karakterlánc vagy karakterláncok a Lista egyezett.
Itt a cellák értékeit a következő cellákból hívtam le LIST oszlopban, ahol egyeznek a Termék és megmutatta nekik a Matched értéket a Lista oszlop.
A képlet a következő:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),"")
Formula bontás:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),"")
Itt a Csillag jel ( * ) egy joker karakter. A " Chips " és " Hideg italok " részlánc a B5 sejt ami a " Ruffles - Chips " string.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
A COUNTIF függvény minden egyes részlánc egyezéshez visszaadott egyet. Mivel " Chips " található a B5 sejt , visszatér { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0))),"")
A MATCH függvény egy értéket adott vissza, mivel csak egy érték létezik " Chips ", amely megfelelt.
IFERROR(INDEX($E$5:$E$6,1),"")
A INDEX funkció visszaadta a " Chips ", mivel ez volt az érték a Lista tömb.
IFERROR("Chips","")
Itt a IFERROR függvényt használjuk a hiba kezelésére, amely akkor lép fel, ha nincs találat.
Végtermék: chipek
Megjegyzés:
Itt azt a cellát mutattam meg, amelyik megfelelt, de bármilyen kimenetet meg tudsz mutatni, ha megváltoztatod a IF funkciók kimenete a kívánt kimenettel.
Bővebben: Excel-képlet Ha a cella szöveget tartalmaz, akkor az értéket egy másik cellában adja vissza
5. EXACT funkció alkalmazása IF és TEXTJOIN segítségével
Ez egy másik megoldás erre a problémára különböző helyzetekben. Itt a lista oszlopból egyetlen taggal kértem a cella értékét. Ezt az értéket összevetjük a termékkel, és az összes egyező értéket egyetlen cellában mutattuk meg.
A képlet a következő:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Képlet bontás :
EXACT(C5:C14,$F$5)
Ez a rész ellenőrzi, hogy a C5:14 tartomány egyezik a F5 cella és visszatér TRUE és HAMIS .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Ez a rész visszaadja a neveket, amelyekre megkapjuk TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"")))
Végül, ez az összes nevet összekapcsolja, minden név után egy vesszővel.
Gyors megjegyzések
Ezek a képletek itt (a 2. kivételével) mind tömbképletek. Ez azt jelenti, hogy meg kell nyomni a Ctrl+Shift+Enter ahelyett, hogy csak a Írja be a címet. gombot a képlet megadásához. De ha Ön egy Office 365 felhasználó, akkor alkalmazhatja őket, ha egyszerűen megnyomja a Lépjen be.
Következtetés
Ebben a cikkben különböző esetekre szűkítettem le a különböző képleteket, amelyek akkor adnak vissza értéket, ha egy cella egy listából egy adott szöveget tartalmaz. Remélem, sikerült megoldást találnia a problémájára. Kérem, hagyjon megjegyzést, ha bármilyen javaslata vagy kérdése van. Továbbá, meglátogathatja a mi blog további ilyen cikkekért.