Obsah
Ak máte zoznam textu a chcete vyhľadávať v bunkách a vracať hodnoty na základe zoznamu, musíte vytvoriť vzorec, pretože Excel neposkytuje jednoduchý spôsob, ako to urobiť. V tomto článku som sa venoval tomuto problému a poskytol som päť rôznych vzorcov na vykonanie tejto operácie, aby ste si mohli vybrať ideálny pre vašu situáciu a vrátiť hodnotu, ak bunka obsahuje určitý textzo zoznamu.
Stiahnite si cvičebnicu
Pracovný zošit, ktorý som použil v tomto článku, si môžete stiahnuť z nasledujúceho tlačidla a precvičiť si ho sami.
Ak bunka obsahuje text zo zoznamu List.xlsx
Úvod do funkcií použitých v tomto článku
Vzorce, ktoré som tu použil, používajú nasledujúce funkcie:
- Funkcia COUNTIFS:
Táto funkcia počíta bunky, ktoré vyhovujú viacerým kritériám. Syntax funkcie Funkcia COUNTIFS je nasledovný.
=COUNTIFS (rozsah1, kritériá1, [rozsah2], [kritériá2], ...)
- rozsah1 - 1. rozsah na vyhodnotenie.
- kritériá1 - Kritérium, ktoré sa má použiť v 1. rozsahu.
- range2 [nepovinné]: Druhý rozsah sa správa rovnako ako rozsah 1.
- kritériá2 [voliteľné]: Kritérium, ktoré sa má použiť v 2. rozsahu. Táto funkcia umožňuje maximálne 127 rozsahy a dvojice kritérií .
- Funkcia TEXTJOIN:
Táto funkcia spája textové hodnoty s oddeľovačom. Funkcia TEXTJOIN je nasledovný.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- oddeľovač: Oddeľovač medzi textami, ktoré má funkcia spojiť.
- ignore_empty: Tento argument určuje, či funkcia ignoruje prázdne bunky alebo nie.
- text1: 1. textová hodnota (alebo rozsah).
- text2 [nepovinné]: 2. textová hodnota (alebo rozsah).
- Funkcia MATCH:
Táto funkcia zisťuje pozíciu položky v poli. Syntax funkcie Funkcia MATCH je nasledovný.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: Hodnota, ktorá sa má porovnať v lookup_array .
- lookup_array: Rozsah buniek alebo odkaz na pole.
- match_type [nepovinné]: 1 = presná alebo najbližšia najmenšia, 0 = presná zhoda, -1 = presná alebo najbližšia najväčšia. V predvolenom nastavení je match_type=1.
- Funkcia INDEX:
Táto funkcia získava hodnoty v zozname alebo tabuľke na základe umiestnenia. Funkcia INDEX je nasledovný.
=INDEX (pole, číslo_riadku, [číslo_stĺpca], [číslo_oblasti])
- pole: Rozsah buniek alebo konštanta poľa.
- číslo_riadku: Pozícia riadku v referencii.
- col_num [nepovinné] : Pozícia stĺpca v referencii.
- area_num [nepovinné]: Rozsah referencie, ktorý sa má použiť.
- Funkcia IFERROR:
Táto funkcia zachytáva a spracúva chyby. Syntax funkcie Funkcia IFERROR je nasledovný.
=IFERROR (value, value_if_error)
- hodnota: Hodnota, odkaz alebo vzorec na kontrolu chyby.
- value_if_error: Hodnota, ktorá sa vráti v prípade zistenia chyby.
- Funkcia VYHĽADÁVANIE:
Táto funkcia zisťuje umiestnenie textu v reťazci. Syntax funkcie Funkcia SEARCH je nasledovný.
=SEARCH (find_text, within_text, [start_num])
- find_text : Tento argument určuje, ktorý text sa má nájsť.
- within_text: Týmto sa určuje, kde sa má text nachádzať.
- start_num [voliteľné]: Pomocou tejto položky určíte, od ktorej pozície v textovom reťazci sa bude počítať pozícia zadaného textu. Nepovinné a predvolené nastavenie je 1 zľava.
5 vzorcov na vrátenie hodnoty v programe Excel, ak bunka obsahuje určitý text zo zoznamu
V tomto súbore údajov sa pokúsim uviesť príklad z reálneho života. Sú tu zastúpené niektoré nápoje. Chipsy , Studené nápoje a Obilniny sú tri kategórie nápojov v tomto súbore údajov. V jednom stĺpci s názvom Všetky produkty , názov a kategórie nápojov sú spojené. Dve z týchto kategórií, Chipsy a Studené nápoje , sú tiež n Zoznam stĺpec. Na základe Zoznam sa v druhom stĺpci zobrazí požadovaný výstup.
1. Kombinácia funkcií COUNTIF, IF & OR na vrátenie hodnoty, ak bunka obsahuje text zo zoznamu
Tento vzorec je najužitočnejší, ak chcete po zhode vrátiť hodnotu celej bunky.
Tu som načítal hodnoty buniek Produkty ktoré sa zhodovali s Zoznam kritériá stĺpcov a ukázal ich Výrobok na základe tohto zoznamu stĺpec.
Vzorec je nasledovný:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Rozdelenie vzorca:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Tu sa Znak hviezdičky ( * ) je zástupný znak. Hľadá sa " Chipsy " a "Studené nápoje" v rámci Bunka B5 čo je "
Ruffles - Čipsy
"
reťazec.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Stránka COUNTIF funkcia vrátila jednotku pre každú zhodu podreťazca. "
Chipsy
"
sa nachádza v Bunka B5 , vráti { 1:0 }.
=IF(OR({1;0}), B5, "")
Stránka ALEBO funkcia vracia TRUE hodnota, ak niektorý z argumentov je TRUE V tomto prípade jeden (1)= TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Ako IF hodnota funkcie je TRUE , vráti prvý argument, ktorý je požadovaným výstupom.
Záverečná stránka Výstup : Ruffles - Čipsy
Poznámka:
Tu som zobrazil bunku, ktorá sa zhoduje, ale môžete zobraziť akýkoľvek výstup podľa potreby zmenou IF funkcie výstupu s požadovaným výstupom.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Prečítajte si viac: Ak bunka obsahuje slovo, potom priraďte hodnotu v programe Excel (4 vzorce)
2. Použitie kombinácie IF-OR s funkciou SEARCH na vrátenie hodnoty s viacerými podmienkami
Tu som načítal hodnoty buniek Produkty ktoré sa zhodovali s Zoznam kritériá stĺpcov a ukázal ich Výrobok na základe tohto zoznamu stĺpec.
Vzorec je nasledovný:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Rozdelenie vzorca:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Stránka HĽADAŤ funkcia vyhľadala hodnoty Zoznam stĺpec v Bunka B5 . pre " Chipsy " vrátilo sa 11 čo je počiatočná pozícia podreťazca. Studené nápoje , vrátilo to chybu.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
Stránka ISNUMBER prevedená funkcia 11 na stránku . TRUE hodnotu a chybu do FALSE hodnota.
=IF(OR(TRUE,FALSE)),B5,"")
Stránka ALEBO funkcia vracia TRUE hodnota, ak niektorý z argumentov je TRUE . Keďže je tu TRUE vráti aj argument TRUE hodnota v tomto prípade.
=IF(TRUE, "Ruffles - Chips","")
Ako IF hodnota funkcie je TRUE , vráti prvý argument, ktorý je požadovaným výstupom.
Konečný výstup: Ruffles - Chips
Poznámka:
- Tu som zobrazil bunku, ktorá sa zhoduje, ale môžete zobraziť akýkoľvek výstup, ktorý chcete, zmenou IF funkcie výstupu s požadovaným výstupom.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Hlavnou výhodou tohto vzorca je to, že nejde o vzorec poľa, ale neodporúča sa, ak máte veľa buniek v Zoznam pretože musíte zadať každú bunku Zoznam ručne.
- V situáciách, keď sa rozlišujú veľké a malé písmená, môžeme použiť nasledujúci vzorec na základe Funkcia FIND namiesto HĽADAŤ funkcie.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Prečítajte si viac: Excel Ak bunka obsahuje text, potom vráťte hodnotu (8 jednoduchých spôsobov)
Podobné čítanie:
- Ako zhrnúť, či bunka obsahuje určitý text v programe Excel (6 spôsobov)
- Použitie VLOOKUP, ak bunka obsahuje slovo v texte v programe Excel
- Ako nájsť text v rozsahu programu Excel & vrátiť odkaz na bunku (3 spôsoby)
3. Použitie vzorca TEXTJOIN na vrátenie hodnoty v inej bunke, ak bunka obsahuje text zo zoznamu
Tento vzorec je užitočný, keď potrebujete zobraziť, aký reťazec alebo reťazce z Zoznam zodpovedajúce.
Tu som načítal hodnoty buniek z ZOZNAM stĺpec, v ktorom sa zhodujú s Produkt a ukázal ich na hodnotu Matched z Zoznam stĺpec.
Vzorec je nasledovný:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,"")
Rozdelenie vzorca:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,"")
Tu sa Znak hviezdičky ( * ) je zástupný znak. Hľadá sa " Chipsy " a podreťazec "Studené nápoje" v bunke B5, ktorý je " Ruffles - Čipsy " reťazec.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,""))
Stránka COUNTIF funkcia vrátila jednotku pre každú zhodu podreťazca. Ako " Chipsy " sa nachádza v Bunka B5 , vráti { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,"))
Stránka IF funkcia vrátila iba " Chipsy " hodnotu, pretože len prvá hodnota jeho argumentu bola jedna = Pravda .
TEXTJOIN(", ",TRUE,{"Chips";""})
Stránka TEXTJOIN funkcia tu nič neurobila, pretože len jedna hodnota z Zoznam Ak by bolo porovnávaných veľa hodnôt, vrátili by sa všetky s čiarkami (,) ako oddeľovačmi.
Konečný výstup: čipy
Prečítajte si viac: Ak bunka obsahuje text, potom pridajte text do inej bunky v programe Excel
4. Použitie vzorca INDEX MATCH na vrátenie hodnoty, ak bunka obsahuje určitý text
Ide o alternatívu k TEXTJOIN Tento vzorec tiež ukazuje, aký reťazec alebo reťazce z Zoznam zodpovedajúce.
Tu som načítal hodnoty buniek z ZOZNAM stĺpec, v ktorom sa zhodujú s Produkt a ukázal ich na hodnotu Matched z Zoznam stĺpec.
Vzorec je nasledovný:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),")
Rozdelenie vzorca:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),"")
Tu sa Znak hviezdičky ( * ) je zástupný znak. Hľadá sa " Chipsy " a " Studené nápoje " podreťazec v rámci Bunka B5 čo je " Ruffles - Čipsy " reťazec.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
Stránka COUNTIF funkcia vrátila jeden pre každý zhodný podreťazec. Ako " Chipsy " sa nachádza v Bunka B5 , vráti { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
Stránka MATCH funkcia vrátila jednotku, pretože existuje len jedna hodnota " Chipsy ", ktoré sa zhodovali.
IFERROR(INDEX($E$5:$E$6,1),"")
Stránka INDEX funkcia vrátila " Chipsy ", pretože to bola hodnota v Zoznam pole.
IFERROR("Chips","")
Tu sa IFERROR sa používa na spracovanie chyby, ktorá nastane, ak neexistuje žiadna zhoda.
Konečný výstup: čipy
Poznámka:
Tu som zobrazil bunku, ktorá sa zhoduje, ale môžete zobraziť akýkoľvek výstup podľa potreby zmenou IF funkcie výstupu s požadovaným výstupom.
Prečítajte si viac: Vzorec programu Excel Ak bunka obsahuje text, potom vráťte hodnotu do inej bunky
5. Použite funkciu EXACT s IF a TEXTJOIN
Toto je ďalšie riešenie tohto problému v rôznych situáciách. Tu som načítal hodnotu bunky zo stĺpca Zoznam s jedným členom. Túto hodnotu sme porovnali so stĺpcom Výrobok a všetky zhodné hodnoty sme zobrazili v jednej bunke.
Vzorec je nasledovný:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Rozdelenie vzorca :
EXACT(C5:C14,$F$5)
Táto časť kontroluje, ktoré hodnoty Rozsah C5:14 zápas s Bunka F5 a vrátiť TRUE a FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Táto časť vráti názvy, pre ktoré dostaneme TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Nakoniec spojí všetky názvy s čiarkou za každým názvom.
Rýchle poznámky
Všetky tieto vzorce (okrem druhého) sú vzorce poľa. To znamená, že musíte stlačiť Ctrl+Shift+Enter namiesto stlačenia len Vstúpte na stránku na zadanie tohto vzorca. Ale ak ste Office 365 používateľa, potom ich môžete použiť stlačením tlačidla Vstúpte.
Záver
V tomto článku som zúžil rôzne vzorce pre rôzne prípady na vrátenie hodnoty, ak bunka obsahuje konkrétny text zo zoznamu. Dúfam, že sa vám podarilo nájsť riešenie vášho problému. Ak máte nejaké návrhy alebo otázky, zanechajte komentár. Okrem toho môžete navštíviť náš blog pre viac takýchto článkov.