Obsah
Výukový program ukazuje, jak spočítat počet buněk s určitým textem v aplikaci Excel. Najdete zde příklady vzorců pro přesnou shodu, částečnou shodu a filtrované buňky.
Minulý týden jsme se zabývali tím, jak v aplikaci Excel spočítat buňky s textem, tedy všechny buňky s jakýmkoli textem. Při analýze velkých celků informací můžete také chtít vědět, kolik buněk obsahuje konkrétní text. Tento návod vysvětluje, jak to provést jednoduchým způsobem.
Jak počítat buňky s konkrétním textem v aplikaci Excel
Microsoft Excel má speciální funkci pro podmíněné počítání buněk, funkci COUNTIF. Stačí zadat cílový textový řetězec v poli kritéria argument.
Zde je obecný vzorec aplikace Excel pro počítání počtu buněk obsahujících určitý text:
COUNTIF(rozsah, " text ")Následující příklad ji ukazuje v akci. Předpokládejme, že máte seznam ID položek v A2:A10 a chcete spočítat počet buněk s určitým ID, řekněme "AA-01". Zadejte tento řetězec do druhého argumentu a získáte tento jednoduchý vzorec:
=COUNTIF(A2:A10, "AA-01")
Chcete-li uživatelům umožnit počítat buňky s libovolným textem bez nutnosti upravovat vzorec, zadejte text do předdefinované buňky, například D1, a zadejte odkaz na buňku:
=COUNTIF(A2:A10, D1)
Poznámka: Funkce COUNTIF aplikace Excel je rozlišování velkých a malých písmen , což znamená, že nerozlišuje velikost písmen. Chcete-li s velkými a malými písmeny zacházet odlišně, použijte tento vzorec rozlišující velikost písmen.
Jak počítat buňky s určitým textem (částečná shoda)
Vzorec popsaný v předchozím příkladu přesně odpovídá kritériím. Pokud je v buňce alespoň jeden odlišný znak, například mezera navíc na konci, nepůjde o přesnou shodu a taková buňka nebude započítána.
Chcete-li zjistit počet buněk, které obsahují určitý text jako součást svého obsahu, použijte v kritériích zástupné znaky, konkrétně hvězdičku (*), která představuje libovolnou sekvenci nebo znaky. V závislosti na vašem cíli může vzorec vypadat takto.
Počítat buňky, které obsahují určitý text v samotný začátek :
COUNTIF(rozsah, " text *")Počítat buňky, které obsahují určitý text v jakákoli pozice :
COUNTIF(rozsah, "* text *")Chcete-li například zjistit, kolik buněk v rozsahu A2:A10 začíná písmenem "AA", použijte tento vzorec:
=COUNTIF(A2:A10, "AA*")
Chcete-li získat počet buněk obsahujících "AA" na libovolné pozici, použijte tento příkaz:
=COUNTIF(A2:A10, "*AA*")
Chcete-li, aby byly vzorce dynamičtější, nahraďte pevně zadané řetězce odkazy na buňky.
Počítání buněk, které začínají určitým textem:
=COUNTIF(A2:A10, D1& "*")
Počítání buněk s určitým textem kdekoli v nich:
=COUNTIF(A2:A10, "*"&D1&"*")
Níže uvedený snímek obrazovky ukazuje výsledky:
Počítat buňky, které obsahují určitý text (rozlišuje velká a malá písmena)
V situaci, kdy potřebujete rozlišit velká a malá písmena, nebude funkce COUNTIF fungovat. V závislosti na tom, zda hledáte přesnou nebo částečnou shodu, budete muset sestavit jiný vzorec.
Vzorec rozlišující malá a velká písmena pro počítání buněk s určitým textem (přesná shoda)
Pro spočítání počtu buněk s určitým textem, který rozpoznává velikost písmen, použijeme kombinaci funkcí SUMPRODUCT a EXACT:
SUMPRODUCT(--EXACT(" text ", rozsah ))Jak tento vzorec funguje:
- EXACT porovná každou buňku v rozsahu se vzorovým textem a vrátí pole hodnot TRUE a FALSE, přičemž TRUE představuje přesné shody a FALSE všechny ostatní buňky. Dvojitá pomlčka (tzv. dvojitý unární ) mění hodnoty TRUE a FALSE na 1 a 0.
- SUMPRODUCT sečte všechny prvky pole. Tento součet je počet jedniček, což je počet shod.
Chcete-li například zjistit počet buněk v A2:A10, které obsahují text v D1 a zpracovávají velká a malá písmena jako různé znaky, použijte tento vzorec:
=SUMPRODUCT(--EXACT(D1, A2:A10))
Vzorec rozlišující malá a velká písmena pro počítání buněk s určitým textem (částečná shoda)
Pro sestavení vzorce, který rozlišuje velká a malá písmena a dokáže najít textový řetězec, který nás zajímá, kdekoli v buňce, používáme 3 různé funkce:
SUMPRODUCT(--(ISNUMBER(FIND(" text ", rozsah ))))Jak tento vzorec funguje:
- Funkce FIND, která rozlišuje malá a velká písmena, hledá cílový text v každé buňce rozsahu. Pokud se to podaří, funkce vrátí pozici prvního znaku, v opačném případě chybu #VALUE!. Pro přehlednost nepotřebujeme znát přesnou pozici, jakékoli číslo (na rozdíl od chyby) znamená, že buňka obsahuje cílový text.
- Funkce ISNUMBER zpracovává pole čísel a chyb vrácených funkcí FIND a převádí čísla na TRUE a vše ostatní na FALSE. Dvojitý unární znak (--) převádí logické hodnoty na jedničky a nuly.
- SUMPRODUCT sečte pole jedniček a nul a vrátí počet buněk, které obsahují zadaný text jako součást svého obsahu.
Abychom vzorec otestovali na reálných datech, zjistíme, kolik buněk v A2:A10 obsahuje podřetězec zadaný v D1:
=SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))
To vrátí počet 3 (buňky A2, A3 a A6):
Jak počítat filtrované buňky s určitým textem
Počítat viditelné položky ve filtrovaném seznamu, budete muset použít kombinaci 4 nebo více funkcí v závislosti na tom, zda chcete přesnou nebo částečnou shodu. Pro snazší pochopení příkladů se nejprve krátce podíváme na zdrojová data.
Předpokládejme, že máte tabulku s ID objednávek ve sloupci B a Množství ve sloupci C, jak je znázorněno na obrázku níže. V tuto chvíli vás zajímají pouze množství větší než 1 a podle toho jste tabulku filtrovali. Otázka zní - jak spočítat filtrované buňky s určitým id?
Vzorec pro počítání filtrovaných buněk s určitým textem (přesná shoda)
Chcete-li spočítat filtrované buňky, jejichž obsah přesně odpovídá vzorovému textovému řetězci, použijte jeden z následujících vzorců:
=SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))
=SUMPRODUCT(MEZISOUČET(103, OFFSET(A2:A10, ŘÁDEK(A2:A10) - MIN(ŘÁDEK(A2:A10)),,1)), --(B2:B10=F1))
Kde F1 je ukázkový text a B2:B10 jsou buňky, které se mají počítat.
Jak tyto vzorce fungují:
Jádrem obou vzorců jsou 2 kontroly:
- Identifikace viditelných a skrytých řádků. K tomu slouží funkce SUBTOTAL s příkazem function_num argument je nastaven na 103. Chcete-li SUBTOTALu dodat všechny odkazy na jednotlivé buňky, použijte buď INDIRECT (v prvním vzorci), nebo kombinaci OFFSET, ROW a MIN (ve druhém vzorci). Protože se snažíme najít viditelné a skryté řádky, nezáleží na tom, na který sloupec se odkazuje (v našem příkladu na A). Výsledkem této operace je pole jedniček a nul, kde jedničky představují viditelné řádky.řádky a nuly - skryté řádky.
- Najděte buňky obsahující zadaný text. Za tímto účelem porovnejte vzorový text (F1) s rozsahem buněk (B2:B10). Výsledkem této operace je pole hodnot TRUE a FALSE, které jsou pomocí operátoru double unary převedeny na 1 a 0.
Nakonec funkce SUMPRODUCT vynásobí prvky obou polí na stejných pozicích a výsledné pole sečte. Protože vynásobením nulou získáme nulu, mají ve výsledném poli 1 pouze buňky, které mají v obou polích 1. Součet jedniček je počet vyfiltrovaných buněk, které obsahují zadaný text.
Vzorec pro počítání filtrovaných buněk s určitým textem (částečná shoda)
Chcete-li spočítat filtrované buňky obsahující určitý text jako součást obsahu buňky, upravte výše uvedené vzorce následujícím způsobem. Místo porovnávání vzorového textu s rozsahem buněk vyhledejte cílový text pomocí ISNUMBER a FIND, jak bylo vysvětleno v jednom z předchozích příkladů:
=SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))
=SUMPRODUCT(MEZISOUČET(103, OFFSET(A2:A10, ŘÁDEK(A2:A10) - MIN(ŘÁDEK(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))
Výsledkem je, že vzorce najdou daný textový řetězec na libovolném místě v buňce:
Poznámka: Funkce SUBTOTAL s číslem 103 v poli function_num identifikuje všechny skryté buňky, které byly odfiltrovány a skryty ručně. Výsledkem je, že výše uvedené vzorce počítají pouze viditelné buňky bez ohledu na to, jak byly neviditelné buňky skryty. Chcete-li vyloučit pouze odfiltrované buňky, ale zahrnout i ty, které byly skryty ručně, použijte 3 pro. function_num .
Takto se v Excelu počítá počet buněk s určitým textem. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!
Dostupné soubory ke stažení
Vzorce aplikace Excel pro počítání buněk s určitým textem