Excel COUNTIF și COUNTIFS cu logica OR

  • Imparte Asta
Michael Brown

Tutorialul explică cum se utilizează funcțiile COUNTIF și COUNTIFS din Excel pentru a număra celulele cu mai multe condiții OR, de exemplu, dacă o celulă conține X, Y sau Z.

După cum știe toată lumea, funcția Excel COUNTIF este concepută pentru a număra celulele pe baza unui singur criteriu, în timp ce COUNTIFS evaluează mai multe criterii cu logica AND. Dar dacă sarcina dvs. necesită logica OR - atunci când sunt furnizate mai multe condiții, oricare dintre ele se poate potrivi pentru a fi inclusă în numărătoare?

Există câteva soluții posibile pentru această sarcină, iar acest tutorial le va acoperi pe toate în detaliu. Exemplele presupun că aveți cunoștințe solide despre sintaxa și utilizările generale ale ambelor funcții. În caz contrar, este posibil să doriți să începeți prin a revedea elementele de bază:

Funcția Excel COUNTIF - numără celulele cu un singur criteriu.

Funcția Excel COUNTIFS - numără celulele cu mai multe criterii AND.

Acum, că toată lumea este pe aceeași pagină, să trecem la treabă:

    Numărați celulele cu condiții OR în Excel

    Această secțiune se referă la cel mai simplu scenariu - numărarea celulelor care îndeplinesc oricare (cel puțin una) dintre condițiile specificate.

    Formula 1. COUNTIF + COUNTIF

    Cel mai simplu mod de a număra celulele care au o valoare sau alta (Countif a sau b ) este să scrieți o formulă COUNTIF obișnuită pentru a număra fiecare element în parte și apoi să adăugați rezultatele:

    COUNTIF( gama , criteriu1 ) + COUNTIF( gama , criteriu2 )

    Ca exemplu, să aflăm câte celule din coloana A conțin fie "mere", fie "banane":

    =COUNTIF(A:A, "mere") + COUNTIF(A:A, "banane")

    În foile de lucru din viața reală, este o bună practică să se opereze pe intervale mai degrabă decât pe coloane întregi, pentru ca formula să funcționeze mai rapid. Pentru a evita deranjul de a actualiza formula de fiecare dată când se schimbă condițiile, introduceți elementele de interes în celule predefinite, de exemplu F1 și G1, și faceți referire la aceste celule. De exemplu:

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

    Această tehnică funcționează bine pentru câteva criterii, dar adăugarea a trei sau mai multe funcții COUNTIF împreună ar face ca formula să fie prea greoaie. În acest caz, ar fi mai bine să folosiți una dintre următoarele alternative.

    Formula 2. COUNTIF cu constantă de matrice

    Iată o versiune mai compactă a formulei SUMIF cu condiții OR în Excel:

    SUM(COUNTIF( gama , { criteriu1 , criteriu2 , criteriu3 , ...}))

    Formula este construită în felul următor:

    În primul rând, toate condițiile sunt grupate într-o constantă de tip array - elementele individuale separate prin virgule și array-ul închis între paranteze ondulate, cum ar fi {"mere", "banane', "lămâi"}.

    Apoi, includeți constanta matricei în criterii argument al unei formule COUNTIF normale: COUNTIF(A2:A10, {"mere", "banane", "lămâi"})

    În cele din urmă, modificați formula COUNTIF în funcția SUM. Acest lucru este necesar deoarece COUNTIF va returna 3 numere individuale pentru "mere", "banane" și "lămâi", iar dumneavoastră trebuie să adunați aceste numere.

    Formula noastră completă este următoarea:

    =SUM(COUNTIF(A2:A10,{"mere", "banane", "lămâi"}))

    Dacă preferați să furnizați criteriile dvs. ca referințe de gamă , va trebui să introduceți formula cu Ctrl + Shift + Enter pentru a o transforma într-o formulă de matrice. De exemplu:

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

    Vă rugăm să observați parantezele curly din captura de ecran de mai jos - este cea mai evidentă indicație a unei formule de matrice în Excel:

    Formula 3. SUMPRODUCT

    O altă modalitate de a număra celulele cu logica OR în Excel este de a utiliza funcția SUMPRODUCT în acest mod:

    SUMPRODUCT(1*( gama ={ criteriu1 , criteriu2 , criteriu3 , ...}))

    Pentru a vizualiza mai bine logica, aceasta ar putea fi scrisă și sub forma:

    SUMPRODUCT(( gama = criteriu1 ) + ( gama = criteriu2 ) + ...)

    Formula testează fiecare celulă din interval în funcție de fiecare criteriu și returnează TRUE dacă criteriul este îndeplinit, iar în caz contrar FALSE. Ca rezultat intermediar, se obțin câteva array-uri de valori TRUE și FALSE (numărul de array-uri este egal cu numărul criteriilor). Apoi, elementele array-ului din aceeași poziție sunt adunate, adică primele elemente din toate array-urile, al doilea element și așa mai departe. Formulaoperația de adiție convertește valorile logice în numere, astfel încât veți obține o matrice de 1 (unul dintre criterii se potrivește) și 0 (niciunul dintre criterii nu se potrivește). Deoarece toate criteriile sunt testate în raport cu aceleași celule, nu există nicio posibilitate ca un alt număr să apară în matricea rezultată - doar o matrice inițială poate avea TRUE într-o anumită poziție, celelalte vor avea FALSE. În cele din urmă, SUMPRODUCTînsumează elementele din matricea rezultată și se obține numărul dorit.

    Prima formulă funcționează într-un mod similar, cu diferența că returnează un array bidimensional de valori TRUE și FALSE, pe care le înmulțiți cu 1 pentru a converti valorile logice în 1 și, respectiv, 0.

    Aplicate la eșantionul nostru de date, formulele au următoarea formă:

    =SUMPRODUCT(1*(A2:A10={"mere", "banane", "lămâi"}))

    Sau

    =SUMPRODUCT((A2:A10="mere") + (A2:A10="banane") + (A2:A10="lămâi")))

    Înlocuiți constanta de matrice codificată cu o referință de interval și veți obține o soluție și mai elegantă:

    =SUMPRODUCT(1*( A2:A10=F1:H1))

    Notă. Funcția SUMPRODUCT este mai lentă decât COUNTIF, motiv pentru care această formulă este mai bine să fie utilizată pe seturi de date relativ mici.

    Numărați celulele cu logica OR și AND

    Atunci când lucrați cu seturi mari de date care au relații pe mai multe niveluri și pe mai multe niveluri încrucișate între elemente, există șanse să trebuiască să numărați celulele cu condiții OR și AND la un moment dat.

    De exemplu, să obținem un număr de "mere", "banane" și "lămâi" care sunt "livrate". Cum facem acest lucru? Pentru început, să traducem condițiile noastre în limbajul Excel:

    • Coloana A: "mere" sau "banane" sau "lămâi"
    • Coloana C: "livrat"

    Privind dintr-un alt unghi, trebuie să numărăm rândurile cu "mere și livrate" SAU "banane și livrate" SAU "lămâi și livrate". În acest fel, sarcina se reduce la numărarea celulelor cu 3 condiții OR - exact ceea ce am făcut în secțiunea anterioară! Singura diferență este că veți utiliza COUNTIFS în loc de COUNTIF pentru a evalua criteriul AND în cadrul fiecărei condiții OR.

    Formula 1. COUNTIFS + COUNTIFS

    Este cea mai lungă formulă, care este cea mai ușor de scris :)

    =COUNTIFS(A2:A10, "mere", C2:C10, "livrate") + COUNTIFS(A2:A10, "banane", C2:C10, "livrate")) + COUNTIFS(A2:A10, "lămâi", C2:C10, "livrate")) + COUNTIFS(A2:A10, "lămâi", C2:C10, "livrate"))

    Captura de ecran de mai jos prezintă aceeași formulă cu referințe la celule:

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

    Formula 2. COUNTIFS cu constantă de matrice

    Se poate crea o formulă COUNTIFS mai compactă cu logică AND/OR prin includerea criteriilor OR într-o constantă de matrice:

    =SUM(COUNTIFS(A2:A10, {"mere", "banane", "lămâi"}, C2:C10, "livrate"))

    Atunci când se utilizează o referință de interval pentru criterii, aveți nevoie de o formulă de matrice, completată prin apăsarea Ctrl + Shift + Enter :

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

    Sfat: Dacă este necesar, puteți folosi liber wildcards în criteriile oricărei formule discutate mai sus. De exemplu, pentru a număra toate tipurile de banane, cum ar fi "banane verzi" sau "banane Goldfinger", puteți utiliza această formulă:

    =SUM(COUNTIFS(A2:A10, {"mere", "*banane*", "lămâi"}, C2:C10, "livrate")))

    În mod similar, puteți construi o formulă pentru a număra celulele pe baza altor tipuri de criterii. De exemplu, pentru a obține o numărătoare a "merelor", "bananelor" sau "lămâilor" care sunt "livrate" și suma este mai mare de 200, adăugați încă o pereche de intervale de criterii/criterii la COUNTIFS:

    =SUM(COUNTIFS(A2:A10, {"mere", "*banane*", "lămâi"}, C2:C10, "livrate", B2:B10, ">200")))

    Sau, utilizați această formulă de matrice (introdusă prin Ctrl + Shift + Enter ):

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

    Numărați celulele cu mai multe condiții OR

    În exemplul anterior, ați învățat cum să testați un set de condiții OR. Dar ce se întâmplă dacă aveți două sau mai multe seturi și doriți să obțineți un total al tuturor relațiilor OR posibile?

    În funcție de numărul de condiții pe care trebuie să le gestionați, puteți utiliza fie COUNTIFS cu o constantă de matrice, fie SUMPRODUCT cu ISNUMBER MATCH. Prima este relativ ușor de construit, dar este limitată la numai 2 seturi de condiții OR. Cea de-a doua poate evalua orice număr de condiții (un număr rezonabil, desigur, având în vedere limita de 255 de argumente și 8192 de caractere pentru lungimea totală a formulei din Excel),dar este posibil să fie nevoie de ceva efort pentru a înțelege logica formulei.

    Numărați celulele cu 2 seturi de condiții OR

    Atunci când aveți de-a face doar cu două seturi de criterii OR, adăugați doar o constantă de matrice la formula COUNTIFS discutată mai sus.

    Pentru ca această formulă să funcționeze, este nevoie de o mică, dar esențială schimbare: utilizați un matrice orizontală (elemente separate prin virgule) pentru un set de criterii și matrice verticală (elemente separate prin punct și virgulă) pentru celălalt. Acest lucru îi spune lui Excel să "împerecheze" sau să "calculeze încrucișat" elementele din cele două tablouri și să returneze un tablou bidimensional al rezultatelor.

    Ca exemplu, să numărăm "merele", "bananele" sau "lămâile" care sunt fie "livrate", fie "în tranzit":

    =SUM(COUNTIFS(A2:A10, {"mere", "banane", "lămâi"}, B2:B10, {"livrat"; "în tranzit"}))

    Vă rugăm să observați punctul și virgula din cea de-a doua constantă de matrice:

    Deoarece Excel este un program bidimensional, nu este posibilă construirea unei matrice tridimensionale sau cvadridimensionale și, prin urmare, această formulă funcționează numai pentru două seturi de criterii OR. Pentru a număra cu mai multe criterii, va trebui să treceți la o formulă SUMPRODUCT mai complexă, explicată în exemplul următor.

    Numărați celulele cu seturi multiple de condiții OR

    Pentru a număra celulele cu mai mult de două seturi de criterii OR, utilizați funcția SUMPRODUCT împreună cu ISNUMBER MATCH.

    De exemplu, să obținem un număr de "mere", "banane" sau "lămâi" care sunt fie "livrate", fie "în tranzit" și care sunt ambalate în "sac" sau "tavă":

    =SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"mere", "banane", "lămâi"},0))*

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

    ISNUMBER(MATCH(C2:C10,{"livrat", "în tranzit"},0))))

    În inima formulei, funcția MATCH verifică criteriile comparând fiecare celulă din intervalul specificat cu constanta corespunzătoare din matrice. Dacă se găsește o potrivire, se returnează o poziție relativă a valorii dacă este vorba de matrice, în caz contrar, N/A. ISNUMBER convertește aceste valori în TRUE și FALSE, care echivalează cu 1 și, respectiv, 0. SUMPRODUCT preia de aici și înmulțește valorile din matriceleDeoarece înmulțirea cu zero dă zero, numai celulele care au 1 în toate matricele supraviețuiesc și sunt însumate.

    Captura de ecran de mai jos arată rezultatul:

    Acesta este modul în care utilizați funcțiile COUNTIF și COUNTIFS în Excel pentru a număra celulele cu mai multe condiții AND, precum și OR. Pentru a vedea mai îndeaproape formulele discutate în acest tutorial, vă invităm să descărcați exemplul nostru de registru de lucru de mai jos. Vă mulțumesc pentru lectură și sper să ne vedem pe blogul nostru săptămâna viitoare!

    Caiet de practică

    Excel COUNTIF cu condiții OR - exemple (.xlsx file)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.