Excel COUNTIF i COUNTIFS z logiką OR

  • Udostępnij To
Michael Brown

Samouczek wyjaśnia, jak używać funkcji COUNTIF i COUNTIFS programu Excel do zliczania komórek z wieloma warunkami OR, np. jeśli komórka zawiera X, Y lub Z.

Jak wszyscy wiedzą, funkcja COUNTIF Excela jest przeznaczona do zliczania komórek na podstawie tylko jednego kryterium, podczas gdy COUNTIFS ocenia wiele kryteriów za pomocą logiki AND. Ale co, jeśli twoje zadanie wymaga logiki OR - gdy podano kilka warunków, każdy z nich może pasować, aby zostać uwzględniony w zliczaniu?

Istnieje kilka możliwych rozwiązań tego zadania, a ten tutorial omówi je wszystkie w szczegółach. Przykłady zakładają, że posiadasz solidną wiedzę na temat składni i ogólnych zastosowań obu funkcji. Jeśli nie, być może będziesz chciał zacząć od rewizji podstaw:

Funkcja COUNTIF w Excelu - zlicza komórki o jednym kryterium.

Funkcja Excel COUNTIFS - zlicza komórki z wieloma kryteriami AND.

Teraz, gdy wszyscy są na tej samej stronie, zanurzmy się:

    Policz komórki z warunkami OR w programie Excel

    Ta część obejmuje najprostszy scenariusz - zliczanie komórek spełniających dowolny (przynajmniej jeden) z podanych warunków.

    Wzór 1. COUNTIF + COUNTIF

    Najprostszym sposobem jest zliczanie komórek, które mają taką czy inną wartość (Countif a lub b ) jest napisanie zwykłej formuły COUNTIF, aby policzyć każdy element indywidualnie, a następnie dodać wyniki:

    COUNTIF( zakres , kryterium1 ) + COUNTIF( zakres , kryterium2 )

    Jako przykład dowiedzmy się, ile komórek w kolumnie A zawiera "jabłka" lub "banany":

    =COUNTIF(A:A, "jabłka") + COUNTIF(A:A, "banany")

    W arkuszach rzeczywistych dobrą praktyką jest operowanie na zakresach, a nie całych kolumnach, aby formuła działała szybciej. Aby oszczędzić sobie kłopotów z aktualizacją formuły przy każdej zmianie warunków, wpisz interesujące Cię elementy do predefiniowanych komórek, powiedzmy F1 i G1, i odwołaj się do tych komórek. Na przykład:

    =COUNTIF(A2:A10, F1) + COUNTIF(A2:A10, G1)

    Ta technika działa dobrze dla kilku kryteriów, ale dodanie trzech lub więcej funkcji COUNTIF razem sprawiłoby, że formuła byłaby zbyt kłopotliwa. W tym przypadku lepiej trzymać się jednej z następujących alternatyw.

    Wzór 2. COUNTIF ze stałą tablicową

    Oto bardziej kompaktowa wersja formuły SUMIF z warunkami OR w Excelu:

    SUMA(COUNTIF( zakres , { kryterium1 , kryterium2 , kryterium3 , ...}))

    Wzór jest skonstruowany w ten sposób:

    Najpierw pakujesz wszystkie warunki w stałą tablicową - poszczególne elementy oddzielone przecinkami i tablicę zamkniętą w nawiasach klamrowych jak {"jabłka", "banany", "cytryny"}.

    Następnie dołączamy stałą tablicową do kryteria argument normalnej formuły COUNTIF: COUNTIF(A2:A10, {"jabłka", "banany", "cytryny"})

    Na koniec wypacz formułę COUNTIF w funkcji SUM. Jest to konieczne, ponieważ COUNTIF zwróci 3 indywidualne zliczenia dla "jabłek", "bananów" i "cytryn", a ty musisz dodać te zliczenia razem.

    Nasza pełna formuła przebiega następująco:

    =SUM(COUNTIF(A2:A10,{"jabłka", "banany", "cytryny"}))

    Jeśli wolisz podać swoje kryteria jako odniesienia do zakresu , będziesz musiał wprowadzić formułę z Ctrl + Shift + Enter, aby uczynić ją formułą tablicową.Na przykład:

    =SUM(COUNTIF(A2:A10,F1:H1))

    Zwróć uwagę na nawiasy klamrowe na poniższym zrzucie ekranu - jest to najbardziej oczywista wskazówka dotycząca formuły tablicowej w Excelu:

    Wzór 3. SUMPRODUKT

    Innym sposobem liczenia komórek z logiką OR w Excelu jest użycie funkcji SUMPRODUCT w ten sposób:

    SUMPRODUKT(1*( zakres ={ kryterium1 , kryterium2 , kryterium3 , ...}))

    Aby lepiej zobrazować logikę, można to również zapisać jako:

    SUMPRODUKT(( zakres = kryterium1 ) + ( zakres = kryterium2 ) + ...)

    Formuła testuje każdą komórkę z zakresu pod kątem każdego kryterium i zwraca TRUE, jeśli kryterium jest spełnione, FALSE w przeciwnym razie.Jako wynik pośredni otrzymujemy kilka tablic wartości TRUE i FALSE (liczba tablic jest równa liczbie twoich kryteriów).Następnie elementy tablicy w tej samej pozycji są dodawane do siebie, tj. pierwsze elementy we wszystkich tablicach, drugie elementy, itd.Operacja dodawania zamienia wartości logiczne na liczby, więc otrzymujemy jedną tablicę zawierającą 1 (jedno z kryteriów pasuje) i 0 (żadne z kryteriów nie pasuje). Ponieważ wszystkie kryteria są testowane na tych samych komórkach, nie ma możliwości, aby w wynikowej tablicy pojawiła się jakakolwiek inna liczba - tylko jedna początkowa tablica może mieć TRUE w określonej pozycji, inne będą miały FALSE. Wreszcie, SUMPRODUCTsumuje elementy wynikowej tablicy, a otrzymasz pożądaną liczbę.

    Pierwsza formuła działa w podobny sposób, z tą różnicą, że zwraca jedną dwuwymiarową tablicę wartości TRUE i FALSE, które mnożysz przez 1, aby przekształcić wartości logiczne odpowiednio na 1 i 0.

    Zastosowane do naszego przykładowego zestawu danych, formuły przyjmują następujący kształt:

    =SUMPRODUKT(1*(A2:A10={"jabłka", "banany", "cytryny"}))

    Albo

    =SUMPRODUKT((A2:A10="jabłka") + (A2:A10="banany") + (A2:A10="cytryny"))

    Zastąp hardcoded array constant referencją zakresu, a otrzymasz jeszcze bardziej eleganckie rozwiązanie:

    =SUMA PRODUKTÓW(1*( A2:A10=F1:H1))

    Uwaga. Funkcja SUMPRODUCT jest wolniejsza niż COUNTIF, dlatego tę formułę najlepiej stosować na stosunkowo małych zbiorach danych.

    Liczenie komórek z logiką OR jak i AND

    Podczas pracy z dużymi zbiorami danych, które mają wielopoziomowe i krzyżowe relacje między elementami, są szanse, że będziesz musiał policzyć komórki z warunkami OR i AND jednocześnie.

    Jako przykład niech posłuży zliczenie "jabłek", "bananów" i "cytryn", które zostały "dostarczone". Jak to zrobić? Na początek przetłumaczmy nasze warunki na język Excela:

    • Kolumna A: "jabłka" lub "banany" lub "cytryny"
    • Kolumna C: "dostarczono"

    Patrząc z innej strony, musimy policzyć wiersze z "jabłkami i dostawą" LUB "bananami i dostawą" LUB "cytrynami i dostawą". Ujmując to w ten sposób, zadanie sprowadza się do policzenia komórek z 3 warunkami OR - dokładnie to samo, co robiliśmy w poprzedniej sekcji! Jedyna różnica polega na tym, że użyjesz COUNTIFS zamiast COUNTIF do oceny kryterium AND w ramach każdego warunku OR.

    Formuła 1. COUNTIFS + COUNTIFS

    Jest to najdłuższa formuła, którą najłatwiej napisać :)

    =COUNTIFS(A2:A10, "jabłka", C2:C10, "dostarczone") + COUNTIFS(A2:A10, "banany", C2:C10, "dostarczone") + COUNTIFS(A2:A10, "cytryny", C2:C10, "dostarczone")

    Zrzut ekranu poniżej pokazuje tę samą formułę z odwołaniami do komórek:

    =COUNTIFS(A2:A10, K1, C2:C10, K2) + COUNTIFS(A2:A10, L1, C2:C10, K2) + COUNTIFS(A2:A10, M1,C2:C10, K2)

    Wzór 2. COUNTIFS ze stałą tablicową

    Bardziej zwartą formułę COUNTIFS z logiką AND/OR można stworzyć poprzez upakowanie kryteriów OR w stałej tablicowej:

    =SUM(COUNTIFS(A2:A10, {"jabłka", "banany", "cytryny"}, C2:C10, "dostarczone"))

    W przypadku użycia odwołania do zakresu dla kryteriów, potrzebujesz formuły tablicowej, wypełnionej przez naciśnięcie klawiszy Ctrl + Shift + Enter :

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2))

    Wskazówka. W razie potrzeby można użyć symbole wieloznaczne w kryteriach dowolnych formuł omówionych powyżej. Na przykład, aby policzyć wszystkie rodzaje bananów, takie jak "zielone banany" lub "banany goldfinger", możesz użyć tej formuły:

    =SUM(COUNTIFS(A2:A10, {"jabłka", "*banany*", "cytryny"}, C2:C10, "dostarczono"))

    W podobny sposób można zbudować formułę zliczającą komórki na podstawie innych typów kryteriów. Na przykład, aby uzyskać zliczenie "jabłek" lub "bananów" lub "cytryn", które są "dostarczone", a kwota jest większa niż 200, dodaj jeszcze jedną parę zakresów/kryteriów do COUNTIFS:

    =SUM(COUNTIFS(A2:A10, {"jabłka", "*banany*", "cytryny"}, C2:C10, "dostarczony", B2:B10, ">200"))

    Lub użyj tej formuły tablicowej (wprowadzonej przez Ctrl + Shift + Enter ):

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2, B2:B10, ">"&F3))

    Liczenie komórek z wieloma warunkami OR

    W poprzednim przykładzie dowiedziałeś się, jak przetestować jeden zestaw warunków OR. Ale co, jeśli masz dwa lub więcej zestawów i szukasz, aby uzyskać sumę wszystkich możliwych relacji OR?

    W zależności od tego, ile warunków musisz obsłużyć, możesz użyć COUNTIFS ze stałą tablicową lub SUMPRODUCT z ISNUMBER MATCH. Pierwszy jest stosunkowo łatwy do zbudowania, ale jest ograniczony do tylko 2 zestawów warunków OR. Drugi może oceniać dowolną liczbę warunków (oczywiście rozsądna liczba, biorąc pod uwagę ograniczenie Excela do 255 argumentów i 8192 znaków do całkowitej długości formuły),ale zrozumienie logiki tej formuły może wymagać trochę wysiłku.

    Liczenie komórek z 2 zestawami warunków OR

    Gdy mamy do czynienia tylko z dwoma zestawami kryteriów OR, wystarczy dodać jeszcze jedną stałą tablicową do omówionej powyżej formuły COUNTIFS.

    Aby formuła zadziałała, potrzebna jest jedna drobna, ale krytyczna zmiana: należy użyć układ poziomy (elementy oddzielone przecinkami) dla jednego zestawu kryteriów oraz układ pionowy (To mówi Excelowi, aby "sparował" lub "przeliczył" elementy w dwóch tablicach i zwrócił dwuwymiarową tablicę wyników.

    Jako przykład, policzmy "jabłka", "banany" lub "cytryny", które są "dostarczone" lub "w tranzycie":

    =SUM(COUNTIFS(A2:A10, {"jabłka", "banany", "cytryny"}, B2:B10, {"dostarczone"; "w tranzycie"}))

    Proszę zwrócić uwagę na średnik w drugiej stałej tablicowej:

    Ponieważ Excel jest programem 2-decyzyjnym, nie jest możliwe skonstruowanie tablicy 3-decyzyjnej lub 4-decyzyjnej, dlatego formuła ta działa tylko dla dwóch zestawów kryteriów OR. Aby liczyć z większą liczbą kryteriów, trzeba będzie przejść na bardziej złożoną formułę SUMPRODUCT wyjaśnioną w następnym przykładzie.

    Liczenie komórek z wieloma zestawami warunków OR

    Aby zliczyć komórki z więcej niż dwoma zestawami kryteriów OR, użyj funkcji SUMPRODUCT wraz z funkcją ISNUMBER MATCH.

    Na przykład uzyskajmy zliczenie "jabłek", "bananów" lub "cytryn", które są "dostarczone" lub "w tranzycie" i są zapakowane w "torbę" lub "tacę":

    =SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"jabłka", "banany", "cytryny"},0))*.

    ISNUMBER(MATCH(B2:B10,{"bag", "tray"},0))*.

    ISNUMBER(MATCH(C2:C10,{"delivered", "in transit"},0))

    W sercu formuły, funkcja MATCH sprawdza kryteria porównując każdą komórkę w określonym zakresie z odpowiadającą jej stałą tablicową. Jeśli zostanie znalezione dopasowanie, zwraca względną pozycję wartości w tablicy, w przeciwnym razie N/A. ISNUMBER konwertuje te wartości na TRUE i FALSE, które równają się odpowiednio 1 i 0. SUMPRODUCT przejmuje to stamtąd, i mnoży tablice'elementy. Ponieważ mnożenie przez zero daje zero, tylko komórki, które mają 1 we wszystkich tablicach, przeżywają i są sumowane.

    Poniższy zrzut ekranu pokazuje wynik:

    W ten sposób używasz funkcji COUNTIF i COUNTIFS w Excelu do zliczania komórek z wieloma warunkami AND, jak również OR. Aby przyjrzeć się bliżej formułom omawianym w tym tutorialu, zapraszamy do pobrania naszego przykładowego skoroszytu poniżej. Dziękuję za lekturę i mam nadzieję, że zobaczymy się na naszym blogu w przyszłym tygodniu!

    Zeszyt ćwiczeń

    Excel COUNTIF z warunkami OR - przykłady (plik .xlsx)

    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.