Excel: zlicz komórki zawierające określony tekst (dopasowanie dokładne i częściowe)

  • Udostępnij To
Michael Brown

Tutorial pokazuje jak policzyć liczbę komórek z określonym tekstem w Excelu. Znajdziesz tu przykłady formuł dla komórek z dopasowaniem dokładnym, częściowym i filtrowanych.

W zeszłym tygodniu przyjrzeliśmy się, jak policzyć komórki z tekstem w Excelu, czyli wszystkie komórki z dowolnym tekstem. Podczas analizowania dużych porcji informacji możesz również chcieć wiedzieć, ile komórek zawiera określony tekst. Ten samouczek wyjaśnia, jak to zrobić w prosty sposób.

    Jak policzyć komórki z określonym tekstem w programie Excel

    Microsoft Excel posiada specjalną funkcję do warunkowego zliczania komórek - funkcję COUNTIF. Wystarczy, że podasz docelowy ciąg tekstowy w polu kryteria argument.

    Oto ogólna formuła Excela do zliczania liczby komórek zawierających określony tekst:

    COUNTIF(zakres, " tekst ")

    Poniższy przykład pokazuje to w działaniu. Załóżmy, że masz listę identyfikatorów elementów w A2:A10 i chcesz policzyć liczbę komórek z konkretnym id, powiedzmy "AA-01". Wpisz ten ciąg w drugim argumencie, a otrzymasz tę prostą formułę:

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

    Aby umożliwić użytkownikom zliczanie komórek z dowolnym tekstem bez konieczności modyfikowania formuły, wprowadź tekst do predefiniowanej komórki, powiedzmy D1, i podaj odwołanie do komórki:

    =COUNTIF(A2:A10, D1)

    Uwaga. Funkcja COUNTIF w Excelu to. bez rozróżniania wielkości liter Aby inaczej traktować duże i małe litery, należy użyć formuły uwzględniającej wielkość liter.

    Jak policzyć komórki z określonym tekstem (dopasowanie częściowe)

    Formuła omówiona w poprzednim przykładzie dokładnie spełnia kryteria. Jeśli w komórce znajduje się przynajmniej jeden inny znak, na przykład dodatkowa spacja na końcu, nie będzie to dokładne dopasowanie i taka komórka nie zostanie zaliczona.

    Aby znaleźć liczbę komórek, które zawierają określony tekst jako część swojej zawartości, użyj w swoich kryteriach znaków wieloznacznych, czyli gwiazdki (*), która reprezentuje dowolny ciąg lub znaki. W zależności od celu, jaki chcesz osiągnąć, formuła może wyglądać jak jedna z poniższych.

    Zlicz komórki, które zawierają określony tekst na sam początek :

    COUNTIF(zakres, " tekst *")

    Policz komórki, które zawierają określony tekst w każda pozycja :

    COUNTIF(zakres, "* tekst *")

    Na przykład, aby znaleźć ile komórek w zakresie A2:A10 zaczyna się od "AA", użyj tej formuły:

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

    Aby uzyskać liczbę komórek zawierających "AA" w dowolnej pozycji, użyj tego:

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

    Aby formuły były bardziej dynamiczne, zastąp twardo zakodowane ciągi znaków referencjami do komórek.

    Aby policzyć komórki, które zaczynają się od określonego tekstu:

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

    Aby policzyć komórki z określonym tekstem w dowolnym miejscu w nich:

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

    Poniższy zrzut ekranu przedstawia wyniki:

    Zliczaj komórki, które zawierają określony tekst (z uwzględnieniem wielkości liter)

    W sytuacji, gdy trzeba rozróżnić duże i małe litery, funkcja COUNTIF nie zadziała. W zależności od tego, czy szukasz dokładnego czy częściowego dopasowania, będziesz musiał zbudować inną formułę.

    Formuła rozróżniająca wielkość liter, aby policzyć komórki z określonym tekstem (dokładne dopasowanie)

    Aby policzyć liczbę komórek z określonym tekstem rozpoznającym przypadek tekstu, użyjemy kombinacji funkcji SUMPRODUCT i EXACT:

    SUMPRODUCT(--EXACT(" tekst ", zakres ))

    Jak działa ta formuła:

    • EXACT porównuje każdą komórkę z zakresu z przykładowym tekstem i zwraca tablicę wartości TRUE i FALSE, przy czym TRUE oznacza dokładne dopasowanie, a FALSE wszystkie pozostałe komórki. Podwójny myślnik (nazywany a podwójny jednoargumentowy ) wymuszają TRUE i FALSE na 1's i 0's.
    • SUMPRODUCT sumuje wszystkie elementy tablicy, a suma ta jest liczbą 1, czyli liczbą dopasowań.

    Na przykład, aby uzyskać liczbę komórek w A2:A10, które zawierają tekst w D1 i obsługują wielkie i małe litery jako różne znaki, użyj tej formuły:

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

    Formuła rozróżniająca wielkość liter, aby policzyć komórki z określonym tekstem (dopasowanie częściowe)

    Aby zbudować formułę uwzględniającą wielkość liter, która może znaleźć interesujący nas ciąg tekstowy w dowolnym miejscu komórki, używamy 3 różnych funkcji:

    SUMPRODUCT(--(ISNUMBER(FIND(" tekst ", zakres ))))

    Jak działa ta formuła:

    • Funkcja FIND rozróżniająca wielkość liter szuka tekstu docelowego w każdej komórce zakresu. Jeśli się uda, funkcja zwraca pozycję pierwszego znaku, w przeciwnym razie błąd #VALUE! Dla jasności nie musimy znać dokładnej pozycji, każda liczba (w przeciwieństwie do błędu) oznacza, że komórka zawiera tekst docelowy.
    • Funkcja ISNUMBER obsługuje tablicę liczb i błędów zwróconych przez FIND i konwertuje liczby na TRUE, a wszystko inne na FALSE. Podwójny unary (--) zamienia wartości logiczne na jedynki i zera.
    • SUMPRODUCT sumuje tablicę 1 i 0 i zwraca liczbę komórek, które zawierają podany tekst jako część swojej zawartości.

    Aby przetestować formułę na rzeczywistych danych, znajdźmy ile komórek w A2:A10 zawiera podłańcuch wprowadzony w D1:

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

    A to zwraca zliczenie 3 (komórki A2, A3 i A6):

    Jak policzyć przefiltrowane komórki z określonym tekstem

    Do liczenia widoczne elementy w filtrowanej liście, będziesz musiał użyć kombinacji 4 lub więcej funkcji w zależności od tego, czy chcesz uzyskać dokładne lub częściowe dopasowanie. Aby ułatwić śledzenie przykładów, spójrzmy najpierw na dane źródłowe.

    Zakładając, że masz tabelę z Identyfikatory zamówień w kolumnie B i Ilość w kolumnie C jak na poniższym obrazku. Na razie interesują Cię tylko ilości większe od 1 i odpowiednio przefiltrowałeś swoją tabelę. Pytanie brzmi - jak policzyć przefiltrowane komórki z konkretnym id?

    Formuła zliczania przefiltrowanych komórek z określonym tekstem (exact match)

    Aby zliczyć odfiltrowane komórki, których zawartość dokładnie pasuje do przykładowego ciągu tekstowego, użyj jednej z poniższych formuł:

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

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1))

    Gdzie F1 to przykładowy tekst, a B2:B10 to komórki do zliczenia.

    Jak działają te formuły:

    U podstaw obu formuł wykonujesz 2 kontrole:

    1. Określenie widocznych i ukrytych wierszy. W tym celu używasz funkcji SUBTOTAL z funkcja_num Aby dostarczyć wszystkie pojedyncze odwołania do komórek do SUBTOTAL, użyj INDIRECT (w pierwszej formule) lub kombinacji OFFSET, ROW i MIN (w drugiej formule). Ponieważ naszym celem jest zlokalizowanie widocznych i ukrytych wierszy, nie ma znaczenia, do której kolumny się odwołać (A w naszym przykładzie). Wynikiem tej operacji jest tablica 1 i 0, gdzie jedynki reprezentują widoczne wiersze.rzędów i zer - rzędów ukrytych.
    2. W tym celu należy porównać przykładowy tekst (F1) z zakresem komórek (B2:B10). Wynikiem tej operacji jest tablica wartości TRUE i FALSE, które są zamieniane na 1 i 0 za pomocą podwójnego operatora jednoargumentowego.

    Na koniec funkcja SUMPRODUCT mnoży elementy obu tablic na tych samych pozycjach, a następnie sumuje otrzymaną tablicę. Ponieważ mnożenie przez zero daje zero, tylko komórki, które mają 1 w obu tablicach, mają 1 w tablicy końcowej. Suma 1 to liczba przefiltrowanych komórek zawierających określony tekst.

    Formuła zliczania przefiltrowanych komórek z określonym tekstem (dopasowanie częściowe)

    Aby zliczyć odfiltrowane komórki zawierające określony tekst jako część zawartości komórki, zmodyfikuj powyższe formuły w następujący sposób. Zamiast porównywać przykładowy tekst z zakresem komórek, wyszukaj tekst docelowy, używając ISNUMBER i FIND, jak wyjaśniono w jednym z poprzednich przykładów:

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

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    W efekcie formuły zlokalizują dany ciąg tekstowy w dowolnej pozycji w komórce:

    Uwaga. Funkcja SUBTOTAL z 103 w. funkcja_num argument, identyfikuje wszystkie ukryte komórki, odfiltrowane i ukryte ręcznie. W rezultacie powyższe formuły zliczają tylko widoczne komórki Niezależnie od tego jak niewidoczne komórki zostały ukryte. Aby wykluczyć tylko odfiltrowane komórki, ale uwzględnić te ukryte ręcznie, użyj 3 dla funkcja_num .

    Oto jak policzyć liczbę komórek z określonym tekstem w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Dostępne pliki do pobrania

    Formuły Excela do zliczania komórek z określonym tekstem

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.