Excel: počítání buněk obsahujících určitý text (přesná a částečná shoda)

  • Sdílet Toto
Michael Brown

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:

    1. 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.
    2. 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

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.