Obsah
Pokud máte k dispozici seznam textů a chcete vyhledávat v buňkách a vracet hodnoty na základě tohoto seznamu, budete muset sestavit vzorec, protože Excel pro to neposkytuje jednoduchý způsob. V tomto článku jsem se touto problematikou zabýval a uvedl jsem pět různých vzorců pro provedení této operace, abyste si mohli vybrat ten ideální pro vaši situaci a vrátit hodnotu, pokud buňka obsahuje určitý text.ze seznamu.
Stáhnout cvičebnici
Pracovní sešit, který jsem použil v tomto článku, si můžete stáhnout z následujícího tlačítka a procvičit si ho sami.
Pokud buňka obsahuje text ze Seznam.xlsx
Úvod k funkcím použitým v tomto článku
Vzorce, které jsem zde použil, používají následující funkce:
- Funkce COUNTIFS:
Tato funkce počítá buňky, které odpovídají více kritériím. Syntaxe funkce Funkce COUNTIFS je následující.
=COUNTIFS (range1, criteria1, [range2], [criteria2], ...)
- range1 - 1. rozsah k vyhodnocení.
- kritéria1 - Kritérium, které se použije pro 1. rozsah.
- range2 [nepovinné]: Druhý rozsah se chová stejně jako rozsah1.
- kritéria2 [nepovinné]: Kritérium, které se použije pro 2. rozsah. Tato funkce umožňuje maximálně 127. rozsahy a dvojice kritérií .
- Funkce TEXTJOIN:
Tato funkce spojuje textové hodnoty s oddělovačem. Syntaxe funkce Funkce TEXTJOIN je následující.
=TEXTJOIN (delimiter, ignore_empty, text1, [text2], ...)
- oddělovač: Oddělovač mezi texty, které má funkce spojit.
- ignore_empty: Tento argument určuje, zda má funkce ignorovat prázdné buňky, nebo ne.
- text1: 1. textová hodnota (nebo rozsah).
- text2 [nepovinné]: 2. textová hodnota (nebo rozsah).
- Funkce MATCH:
Tato funkce zjišťuje pozici položky v poli. Syntaxe funkce Funkce MATCH je následující.
=MATCH (lookup_value, lookup_array, [match_type])
- lookup_value: Hodnota, která má být porovnána v lookup_array .
- lookup_array: Rozsah buněk nebo odkaz na pole.
- match_type [nepovinné]: 1 = přesná nebo nejbližší nejmenší, 0 = přesná shoda, -1 = přesná nebo nejbližší největší. Ve výchozím nastavení je match_type=1.
- Funkce INDEX:
Tato funkce získává hodnoty v seznamu nebo tabulce na základě umístění. Syntaxe funkce Funkce INDEX je následující.
=INDEX (pole, číslo_řádku, [číslo_kolíku], [číslo_oblasti])
- pole: Rozsah buněk nebo konstanta pole.
- row_num: Pozice řádku v referenci.
- col_num [nepovinné] : Pozice sloupce v referenci.
- area_num [nepovinné]: Referenční rozsah, který se má použít.
- Funkce IFERROR:
Tato funkce zachycuje a zpracovává chyby. Syntaxe funkce Funkce IFERROR je následující.
=IFERROR (value, value_if_error)
- hodnotu: Hodnota, odkaz nebo vzorec pro kontrolu chyby.
- value_if_error: Hodnota, která se vrátí v případě nalezení chyby.
- Funkce HLEDAT:
Tato funkce zjišťuje umístění textu v řetězci. Syntaxe funkce Funkce HLEDAT je následující.
=SEARCH (find_text, within_text, [start_num])
- find_text : Tento argument určuje, který text má být vyhledán.
- within_text: Určuje, kde se má text nacházet.
- start_num [nepovinné]: Pomocí tohoto parametru určíte, od které pozice v textovém řetězci se bude počítat pozice zadaného textu. Nepovinné a výchozí hodnota je 1 zleva.
5 vzorců pro vrácení hodnoty v aplikaci Excel, pokud buňka obsahuje určitý text ze seznamu
V tomto souboru dat se pokusím uvést příklad z reálného života. Jsou zde zastoupeny některé nápoje. Chipsy , Studené nápoje a Obiloviny jsou tři kategorie nápojů v tomto souboru dat. V jediném sloupci nazvaném Všechny produkty , název a kategorie nápojů jsou spolu propojeny. dvě z těchto kategorií, Chipsy a Studené nápoje , jsou také n Seznam sloupec. Na základě Seznam se ve druhém sloupci zobrazí požadovaný výstup.
1. Kombinace funkcí COUNTIF, IF & OR pro vrácení hodnoty, pokud buňka obsahuje text ze seznamu
Tento vzorec je nejužitečnější, pokud chcete vrátit hodnotu celé buňky po porovnání.
Zde jsem načetl hodnoty buňky Produkty které odpovídají Seznam kritéria sloupců a ukázal je Výrobek na základě tohoto seznamu sloupec.
Vzorec je následující:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Rozdělení vzorců:
=IF(OR(COUNTIF(B5,"*"&$E$5:$E$6&"*")),B5,"")
Zde se Znak hvězdičky ( * ) je zástupný znak. Hledá se " Chipsy " a "Studené nápoje" v rámci podřetězce Buňka B5 což je "
Ruffles - Chipsy
"
řetězec.
-
=IF(OR(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*)), B5, "")
Na stránkách COUNTIF funkce vrátila jedničku pro každou shodu podřetězce. "
Chipsy
"
se nachází v Buňka B5 , vrátí { 1:0 }.
=IF(OR({1;0}), B5, "")
Na stránkách NEBO funkce vrací TRUE hodnota, pokud je některý z argumentů TRUE V tomto případě jeden (1)= TRUE .
=IF(TRUE, "Ruffles - Chips", "")
Jako IF hodnota funkce je TRUE , vrátí první argument, který je požadovaným výstupem.
Závěrečná stránka Výstup : Ruffles - Chipsy
Poznámka:
Zde jsem zobrazil buňku, která odpovídala, ale můžete zobrazit libovolný výstup, pokud změníte příkaz IF funkce výstupu s požadovaným výstupem.
=IF(OR(COUNTIF(B5, "*"&$E$5:$E$6& "*")),TRUE,FALSE)
Přečtěte si více: Pokud buňka obsahuje slovo, pak přiřaďte hodnotu v aplikaci Excel (4 vzorce)
2. Použití kombinace IF-OR s funkcí SEARCH pro vrácení hodnoty s více podmínkami
Zde jsem načetl hodnoty buňky Produkty které odpovídají Seznam kritéria sloupců a ukázal je Výrobek na základě tohoto seznamu sloupec.
Vzorec je následující:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Rozdělení vzorců:
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),B5,"")
Na stránkách HLEDAT funkce prohledala hodnoty Seznam sloupec v Buňka B5 . pro " Chipsy " vrátil se 11 což je počáteční pozice podřetězce. Studené nápoje , vrátil chybu.
=IF(OR(ISNUMBER(11),ISNUMBER(SEARCH(#VALUE))),B5,"")
Na stránkách ISNUMBER funkce převedena 11 na TRUE a chybu do FALSE hodnotu.
=IF(OR(TRUE,FALSE)),B5,"")
Na stránkách NEBO funkce vrací TRUE hodnota, pokud je některý z argumentů TRUE Protože je zde TRUE vrátí také argument TRUE hodnotu v tomto případě.
=IF(TRUE, "Ruffles - Chips","")
Jako IF hodnota funkce je TRUE , vrátí první argument, který je požadovaným výstupem.
Konečný výstup: Ruffles - Chipsy
Poznámka:
- Zde jsem zobrazil buňku, která odpovídala, ale můžete zobrazit jakýkoli výstup, který chcete, změnou parametru IF funkce výstupu s požadovaným výstupem.
=IF(OR(ISNUMBER(SEARCH($E$5,B5)),ISNUMBER(SEARCH($E$6,B5))),1,0)
- Hlavní výhodou tohoto vzorce je, že se nejedná o vzorec pole, ale nedoporučuje se, pokud máte v poli mnoho buněk. Seznam protože musíte zadat každou buňku Seznam ručně.
- Pro situace, kdy se rozlišují malá a velká písmena, můžeme použít následující vzorec založený na. Funkce FIND místo HLEDAT funkce.
=IF(OR(ISNUMBER(FIND($E$5,B5)),ISNUMBER(FIND($E$6,B5))),B5,"")
Přečtěte si více: Excel Pokud buňka obsahuje text, pak vrať hodnotu (8 snadných způsobů)
Podobné čtení:
- Jak sečíst, zda buňka obsahuje určitý text v aplikaci Excel (6 způsobů)
- Použití VLOOKUP, pokud buňka obsahuje slovo v textu v aplikaci Excel
- Jak najít text v rozsahu aplikace Excel & vrátit odkaz na buňku (3 způsoby)
3. Použití vzorce TEXTJOIN pro vrácení hodnoty v jiné buňce, pokud buňka obsahuje text ze seznamu
Tento vzorec je užitečný, když potřebujete zobrazit, jaký řetězec nebo řetězce z pole Seznam odpovídalo.
Zde jsem načetl hodnoty buněk ze souboru SEZNAM sloupec, kde se shodují s Produkt a ukázal je na hodnotu Matched z Seznam sloupec.
Vzorec je následující:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"), $E$5:$E$6,""))
Rozdělení vzorců:
=TEXTJOIN(", ",TRUE,IF(COUNTIF(B5, "*"&$E$5:$E$6& "*"),$E$5:$E$6,""))
Zde se Znak hvězdičky ( * ) je zástupný znak. Hledá se " Chipsy " a podřetězec "Studené nápoje" v buňce B5, který je " Ruffles - Chipsy " řetězec.
TEXTJOIN(", ",TRUE,IF(COUNTIF("Ruffles - Chips",*Chips*, *Cold Drinks*),$E$5:$E$6,"))
Na stránkách COUNTIF funkce vrátila jedničku pro každou shodu podřetězce. Jako " Chipsy " se nachází v Buňka B5 , vrátí { 1:0 }.
TEXTJOIN(", ",TRUE,IF({1;0},$E$5:$E$6,"))
Na stránkách IF funkce vrátila pouze " Chipsy " hodnotu, protože pouze první hodnota jeho argumentu byla jedna = Pravda .
TEXTJOIN(", ",TRUE,{"Chips";""})
Na stránkách TEXTJOIN funkce zde nic neudělala, protože pouze jedna hodnota ze souboru Seznam Pokud by bylo porovnáváno více hodnot, byly by vráceny všechny s čárkami (,) jako oddělovačem.
Konečný výstup: čipy
Přečtěte si více: Pokud buňka obsahuje text, přidejte text do jiné buňky v aplikaci Excel
4. Použití vzorce INDEX MATCH pro vrácení hodnoty, pokud buňka obsahuje určitý text
Jedná se o alternativu k TEXTJOIN Tento vzorec také zobrazuje, jaký řetězec nebo řetězce ze seznamu Seznam odpovídalo.
Zde jsem načetl hodnoty buněk ze souboru SEZNAM sloupec, kde se shodují s Produkt a ukázal je na hodnotu Matched z Seznam sloupec.
Vzorec je následující:
=IFERROR(INDEX($E$5:$E$6, MATCH(1, COUNTIF(B5, "*"&$E$5:$E$6& "*"), 0)),")
Rozdělení vzorců:
=IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF(B5, "*"&$E$5:$E$6& "*"),0)),")
Zde se Znak hvězdičky ( * ) je zástupný znak. Hledá se " Chipsy " a " Studené nápoje " podřetězec v rámci Buňka B5 což je " Ruffles - Chipsy " řetězec.
IFERROR(INDEX($E$5:$E$6,MATCH(1,COUNTIF("Ruffles - Chips",*Chips*,*Cold Drinks*),0)),"")
Na stránkách COUNTIF funkce vrátila jedničku pro každý shodný podřetězec. Jako " Chipsy " se nachází v Buňka B5 , vrátí { 1:0 }.
IFERROR(INDEX($E$5:$E$6,MATCH(1,{1;0}),0)),"")
Na stránkách MATCH funkce vrátila jedničku, protože existuje pouze jedna hodnota " Chipsy ", které se shodovaly.
IFERROR(INDEX($E$5:$E$6,1),"")
Na stránkách INDEX funkce vrátila " Chipsy ", protože to byla hodnota v Seznam pole.
IFERROR("Chips",")
Zde se IFERROR slouží k ošetření chyby, která nastane, pokud neexistuje žádná shoda.
Konečný výstup: čipy
Poznámka:
Zde jsem zobrazil buňku, která odpovídala, ale můžete zobrazit libovolný výstup, pokud změníte příkaz IF funkce výstupu s požadovaným výstupem.
Přečtěte si více: Vzorec aplikace Excel Pokud buňka obsahuje text, pak vraťte hodnotu do jiné buňky
5. Použijte funkci EXACT s IF a TEXTJOIN
Toto je další řešení tohoto problému v různých situacích. Zde jsem načetl hodnotu buňky ze sloupce Seznam s jediným členem. Tuto hodnotu jsme porovnali se sloupcem Produkt a všechny shodné hodnoty jsme zobrazili v jedné buňce.
Vzorec je následující:
=TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,"))
Rozdělení vzorců :
EXACT(C5:C14,$F$5)
Tato část kontroluje, které hodnoty Rozsah C5:14 se shodují s Buňka F5 a vrátit TRUE a FALSE .
IF(EXACT(C5:C14,$F$5),B5:B14,"")
Tato část vrací jména, pro která získáme TRUE .
TEXTJOIN(", ",TRUE,IF(EXACT(C5:C14,$F$5),B5:B14,""))
Nakonec spojí všechny názvy s čárkou za každým názvem.
Rychlé poznámky
Všechny tyto vzorce (kromě druhého) jsou vzorce pole. To znamená, že musíte stisknout tlačítko Ctrl+Shift+Enter namísto stisknutí pouze Vstupte na tlačítko pro zadání tohoto vzorce. Pokud jste ale Office 365 uživatele, pak je můžete použít stisknutím pouhého Vstupte.
Závěr
V tomto článku jsem zúžil různé vzorce pro různé případy, jak vrátit hodnotu, pokud buňka obsahuje konkrétní text ze seznamu. Doufám, že se vám podařilo najít řešení vašeho problému. Pokud máte nějaké návrhy nebo dotazy, zanechte prosím komentář. Kromě toho můžete navštívit naši stránku. blog více takových článků.