Excel: spočítajte bunky obsahujúce konkrétny text (presná a čiastočná zhoda)

  • Zdieľajte To
Michael Brown

Tento návod ukazuje, ako spočítať počet buniek s určitým textom v programe Excel. Nájdete tu príklady vzorcov pre presnú zhodu, čiastočnú zhodu a filtrované bunky.

Minulý týždeň sme sa zaoberali tým, ako v programe Excel spočítať bunky s textom, teda všetky bunky s akýmkoľvek textom. Pri analýze veľkých celkov informácií možno budete chcieť vedieť aj to, koľko buniek obsahuje konkrétny text. Tento návod vysvetľuje, ako to urobiť jednoduchým spôsobom.

    Ako počítať bunky s konkrétnym textom v programe Excel

    Microsoft Excel má špeciálnu funkciu na podmienečné počítanie buniek, funkciu COUNTIF. Stačí, ak zadáte cieľový textový reťazec v poli kritériá argument.

    Tu je všeobecný vzorec programu Excel na počítanie počtu buniek obsahujúcich určitý text:

    COUNTIF(rozsah, " text ")

    Nasledujúci príklad ho ukazuje v praxi. Predpokladajme, že máte zoznam ID položiek v A2:A10 a chcete spočítať počet buniek s konkrétnym ID, povedzme "AA-01". Zadajte tento reťazec do druhého argumentu a dostanete tento jednoduchý vzorec:

    =COUNTIF(A2:A10, "AA-01")

    Ak chcete používateľom umožniť počítanie buniek s ľubovoľným textom bez potreby upravovať vzorec, zadajte text do preddefinovanej bunky, napríklad D1, a zadajte odkaz na bunku:

    =COUNTIF(A2:A10, D1)

    Poznámka: Funkcia Excel COUNTIF je rozlišovanie veľkých a malých písmen , čo znamená, že nerozlišuje veľkosť písmen. Ak chcete s veľkými a malými písmenami zaobchádzať odlišne, použite tento vzorec rozlišujúci veľkosť písmen.

    Ako počítať bunky s určitým textom (čiastočná zhoda)

    Vzorec uvedený v predchádzajúcom príklade sa presne zhoduje s kritériami. Ak sa v bunke nachádza aspoň jeden odlišný znak, napríklad dodatočná medzera na konci, nebude to presná zhoda a takáto bunka sa nebude počítať.

    Ak chcete zistiť počet buniek, ktoré obsahujú určitý text ako súčasť svojho obsahu, použite v kritériách zástupné znaky, konkrétne hviezdičku (*), ktorá predstavuje akúkoľvek sekvenciu alebo znaky. V závislosti od vášho cieľa môže vzorec vyzerať takto.

    Spočítajte bunky, ktoré obsahujú konkrétny text na samotný začiatok :

    COUNTIF(rozsah, " text *")

    Spočítať bunky, ktoré obsahujú určitý text v akákoľvek pozícia :

    COUNTIF(rozsah, "* text *")

    Ak chcete napríklad zistiť, koľko buniek v rozsahu A2:A10 začína písmenom "AA", použite tento vzorec:

    =COUNTIF(A2:A10, "AA*")

    Ak chcete získať počet buniek obsahujúcich "AA" na ľubovoľnej pozícii, použite túto položku:

    =COUNTIF(A2:A10, "*AA*")

    Ak chcete, aby boli vzorce dynamickejšie, nahraďte pevne zakódované reťazce odkazmi na bunky.

    Počítanie buniek, ktoré začínajú určitým textom:

    =COUNTIF(A2:A10, D1& "*")

    Počítanie buniek s určitým textom kdekoľvek v nich:

    =COUNTIF(A2:A10, "*"&D1&"*")

    Na nasledujúcom obrázku sú zobrazené výsledky:

    Spočítajte bunky, ktoré obsahujú určitý text (rozlišovanie veľkých a malých písmen)

    V situácii, keď potrebujete rozlišovať veľké a malé písmená, funkcia COUNTIF nebude fungovať. V závislosti od toho, či hľadáte presnú alebo čiastočnú zhodu, budete musieť vytvoriť iný vzorec.

    Vzorec citlivý na veľkosť písmen na počítanie buniek s konkrétnym textom (presná zhoda)

    Na spočítanie počtu buniek s určitým textom, ktorý rozpoznáva veľkosť písma, použijeme kombináciu funkcií SUMPRODUCT a EXACT:

    SUMPRODUCT(--EXACT(" text ", rozsah ))

    Ako tento vzorec funguje:

    • EXACT porovná každú bunku v rozsahu so vzorovým textom a vráti pole hodnôt TRUE a FALSE, pričom TRUE predstavuje presnú zhodu a FALSE všetky ostatné bunky. dvojitý unárny ) vynúti TRUE a FALSE na 1 a 0.
    • SUMPRODUCT sčíta všetky prvky poľa. Tento súčet je počet 1, čo je počet zhody.

    Ak chcete napríklad získať počet buniek v A2:A10, ktoré obsahujú text v D1 a spracúvajú veľké a malé písmená ako rôzne znaky, použite tento vzorec:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Vzorec na počítanie buniek s určitým textom (čiastočná zhoda)

    Na vytvorenie vzorca, ktorý rozlišuje veľké a malé písmená a dokáže nájsť textový reťazec, ktorý nás zaujíma, kdekoľvek v bunke, používame 3 rôzne funkcie:

    SUMPRODUCT(--(ISNUMBER(FIND(" text ", rozsah ))))

    Ako tento vzorec funguje:

    • Funkcia FIND, ktorá rozlišuje veľké a malé písmená, hľadá cieľový text v každej bunke rozsahu. Ak uspeje, funkcia vráti pozíciu prvého znaku, v opačnom prípade chybu #VALUE! Z dôvodu prehľadnosti nepotrebujeme poznať presnú pozíciu, akékoľvek číslo (na rozdiel od chyby) znamená, že bunka obsahuje cieľový text.
    • Funkcia ISNUMBER spracúva pole čísel a chýb vrátených funkciou FIND a konvertuje čísla na TRUE a všetko ostatné na FALSE. Dvojitý unárny znak (--) mení logické hodnoty na jednotky a nuly.
    • SUMPRODUCT sčíta pole 1 a 0 a vráti počet buniek, ktoré obsahujú zadaný text ako súčasť svojho obsahu.

    Ak chcete vzorec otestovať na skutočných údajoch, zistíme, koľko buniek v A2:A10 obsahuje podreťazec zadaný v D1:

    =SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))

    A to vráti počet 3 (bunky A2, A3 a A6):

    Ako počítať filtrované bunky s konkrétnym textom

    Počítanie viditeľné položky vo filtrovanom zozname, budete musieť použiť kombináciu 4 alebo viacerých funkcií v závislosti od toho, či chcete presnú alebo čiastočnú zhodu. Aby sa príklady ľahšie sledovali, pozrime sa najprv na zdrojové údaje.

    Predpokladáme, že máte tabuľku s ID objednávok v stĺpci B a Množstvo v stĺpci C, ako je znázornené na obrázku nižšie. Momentálne vás zaujímajú len množstvá väčšie ako 1 a podľa toho ste tabuľku vyfiltrovali. Otázka znie - ako spočítať vyfiltrované bunky s konkrétnym id?

    Vzorec na počítanie filtrovaných buniek s konkrétnym textom (presná zhoda)

    Ak chcete spočítať filtrované bunky, ktorých obsah sa presne zhoduje s textovým reťazcom vzorky, použite jeden z nasledujúcich vzorcov:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))

    =SUMPRODUCT(MEDZISÚČET(103, OFFSET(A2:A10, RIADOK(A2:A10) - MIN(RIADOK(A2:A10)),,1)), --(B2:B10=F1))

    Kde F1 je text vzorky a B2:B10 sú bunky, ktoré sa majú spočítať.

    Ako tieto vzorce fungujú:

    V jadre oboch vzorcov vykonávate 2 kontroly:

    1. Identifikujte viditeľné a skryté riadky. Na tento účel použite funkciu SUBTOTAL s function_num Argument je nastavený na hodnotu 103. Ak chcete SUBTOTALu dodať všetky odkazy na jednotlivé bunky, použite buď INDIRECT (v prvom vzorci), alebo kombináciu OFFSET, ROW a MIN (v druhom vzorci). Keďže sa snažíme nájsť viditeľné a skryté riadky, nezáleží na tom, na ktorý stĺpec sa odkazuje (v našom príklade na A). Výsledkom tejto operácie je pole 1 a 0, kde jednotky predstavujú viditeľné riadky.riadky a nuly - skryté riadky.
    2. Nájdite bunky obsahujúce zadaný text. Na tento účel porovnajte vzorový text (F1) s rozsahom buniek (B2:B10). Výsledkom tejto operácie je pole hodnôt TRUE a FALSE, ktoré sú pomocou operátora double unary premenené na 1 a 0.

    Nakoniec funkcia SUMPRODUCT vynásobí prvky oboch polí na rovnakých pozíciách a potom výsledné pole spočíta. Keďže vynásobením nulou dostaneme nulu, vo výslednom poli budú len bunky, ktoré majú v oboch poliach 1. Súčet 1 je počet odfiltrovaných buniek, ktoré obsahujú zadaný text.

    Vzorec na počítanie filtrovaných buniek s konkrétnym textom (čiastočná zhoda)

    Ak chcete spočítať filtrované bunky obsahujúce určitý text ako súčasť obsahu bunky, upravte vyššie uvedené vzorce nasledujúcim spôsobom. Namiesto porovnávania vzorového textu s rozsahom buniek vyhľadajte cieľový text pomocou ISNUMBER a FIND, ako bolo vysvetlené v jednom z predchádzajúcich príkladov:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(MEDZISÚČET(103, OFFSET(A2:A10, RIADOK(A2:A10) - MIN(RIADOK(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    Výsledkom je, že vzorce nájdu daný textový reťazec na ľubovoľnej pozícii v bunke:

    Poznámka: Funkcia SUBTOTAL s hodnotou 103 v function_num identifikuje všetky skryté bunky, ktoré boli odfiltrované a skryté ručne. Výsledkom je, že vyššie uvedené vzorce počítajú len viditeľné bunky bez ohľadu na to, ako boli neviditeľné bunky skryté. Ak chcete vylúčiť len odfiltrované bunky, ale zahrnúť aj tie, ktoré boli skryté ručne, použite 3 pre function_num .

    Takto sa v programe Excel počíta počet buniek s určitým textom. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!

    Dostupné súbory na stiahnutie

    Vzorce programu Excel na počítanie buniek s určitým textom

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.