Excel COUNTIF и COUNTIFS с логика OR

  • Споделя Това
Michael Brown

В урока е обяснено как да използвате функциите COUNTIF и COUNTIFS на Excel, за да преброите клетките с няколко условия OR, например ако дадена клетка съдържа X, Y или Z.

Както всеки знае, функцията COUNTIF на Excel е предназначена за броене на клетки въз основа на само един критерий, докато COUNTIFS оценява няколко критерия с логиката AND. Но какво става, ако задачата ви изисква логика OR - когато са зададени няколко условия, всяко от тях може да съвпадне, за да бъде включено в броенето?

Има няколко възможни решения на тази задача и в този урок ще бъдат разгледани подробно. Примерите предполагат, че имате добри познания за синтаксиса и общите употреби на двете функции. Ако това не е така, може би ще искате да започнете с преразглеждане на основите:

Функцията COUNTIF на Excel - преброява клетките с един критерий.

Функцията COUNTIFS на Excel - преброява клетките с множество критерии AND.

Сега, когато всички са на една и съща вълна, нека се потопим в работата:

    Преброяване на клетките с условия OR в Excel

    Този раздел обхваща най-простия сценарий - броене на клетки, които отговарят на някое (поне едно) от посочените условия.

    Формула 1. COUNTIF + COUNTIF

    Най-лесният начин да преброите клетките, които имат една или друга стойност (Countif a или b ) е да се напише обикновена формула COUNTIF за преброяване на всеки елемент поотделно и след това да се сумират резултатите:

    COUNTIF( обхват , критерий1 ) + COUNTIF( обхват , критерий2 )

    Като пример, нека да открием колко клетки в колона А съдържат "ябълки" или "банани":

    =COUNTIF(A:A, "ябълки") + COUNTIF(A:A, "банани")

    В реалните работни листове е добра практика да се работи с диапазони, а не с цели колони, за да работи формулата по-бързо. За да си спестите актуализирането на формулата при всяка промяна на условията, въведете интересуващите ви елементи в предварително определени клетки, например F1 и G1, и направете препратка към тези клетки. Например:

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

    Тази техника работи добре за няколко критерия, но добавянето на три или повече функции COUNTIF заедно ще направи формулата твърде тромава. В този случай е по-добре да се спрете на една от следните алтернативи.

    Формула 2. COUNTIF с константа на масива

    Ето една по-компактна версия на формулата SUMIF с условия OR в Excel:

    SUM(COUNTIF( обхват , { критерий1 , критерий2 , критерий3 , ...}))

    Формулата се конструира по следния начин:

    Първо, събирате всички условия в константа масив - отделните елементи са разделени със запетаи, а масивът е затворен в къдрави скоби като {"ябълки", "банани", "лимони"}.

    След това включвате константата на масива в критерии аргумент на нормална формула COUNTIF: COUNTIF(A2:A10, {"ябълки", "банани", "лимони"})

    Накрая изкривете формулата COUNTIF във функцията SUM. Това е необходимо, защото COUNTIF ще върне 3 отделни броя за "ябълки", "банани" и "лимони", а вие трябва да съберете тези бройки.

    Нашата пълна формула е следната:

    =SUM(COUNTIF(A2:A10,{"ябълки", "банани", "лимони"})

    Ако предпочитате да предоставите критериите си като препратки към обхвата , ще трябва да въведете формулата с Ctrl + Shift + Enter, за да я превърнете във формула за масив. Например:

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

    Обърнете внимание на къдравите скоби на скрийншота по-долу - това е най-очевидният признак на формула за масив в Excel:

    Формула 3. SUMPRODUCT

    Друг начин за преброяване на клетките с логиката OR в Excel е да използвате функцията SUMPRODUCT по този начин:

    SUMPRODUCT(1*( обхват ={ критерий1 , критерий2 , критерий3 , ...}))

    За по-добра визуализация на логиката това може да се запише и по следния начин:

    SUMPRODUCT(( обхват = критерий1 ) + ( обхват = критерий2 ) + ...)

    Формулата проверява всяка клетка в обхвата по всеки критерий и връща TRUE, ако критерият е изпълнен, и FALSE в противен случай. Като междинен резултат получавате няколко масива със стойности TRUE и FALSE (броят на масивите е равен на броя на критериите). След това елементите на масива на една и съща позиция се събират, т.е. първите елементи във всички масиви, вторите елементи и т.н.Операцията за добавяне преобразува логическите стойности в числа, така че в крайна сметка получавате един масив от 1 (един от критериите отговаря) и 0 (нито един от критериите не отговаря). Тъй като всички критерии се проверяват спрямо едни и същи клетки, няма как в получения масив да се появи друго число - само един първоначален масив може да има TRUE на определена позиция, а другите ще имат FALSE. Накрая, SUMPRODUCTсумира елементите на получения масив и получава желания брой.

    Първата формула работи по подобен начин, с тази разлика, че връща един двумерен масив от стойности TRUE и FALSE, които се умножават по 1, за да се преобразуват логическите стойности съответно в 1 и 0.

    Приложени към нашия примерен набор от данни, формулите придобиват следната форма:

    =SUMPRODUCT(1*(A2:A10={"ябълки", "банани", "лимони"})

    Или

    =SUMPRODUCT((A2:A10="ябълки") + (A2:A10="банани") + (A2:A10="лимони")

    Заменете твърдо кодираната константа на масива с референция на обхват и ще получите още по-елегантно решение:

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

    Забележка. Функцията SUMPRODUCT е по-бавна от COUNTIF, поради което тази формула е най-добре да се използва за сравнително малки набори от данни.

    Броене на клетки с логика OR и AND

    Когато работите с големи масиви от данни, в които има връзки на много нива и между нива между елементите, има вероятност да ви се наложи да преброите клетките с условия OR и AND едновременно.

    Като пример, нека получим брой на "ябълките", "бананите" и "лимоните", които са "доставени". Как да направим това? Като начало нека преведем нашите условия на езика на Excel:

    • Колона А: "ябълки", "банани" или "лимони".
    • Колона В: "доставени"

    Погледнато от друг ъгъл, трябва да преброим редовете с "ябълки и доставени" ИЛИ "банани и доставени" ИЛИ "лимони и доставени". По този начин задачата се свежда до преброяване на клетките с 3 условия ИЛИ - точно това, което направихме в предишния раздел! Единствената разлика е, че ще използвате COUNTIFS вместо COUNTIF, за да оцените критерия AND във всяко условие ИЛИ.

    Формула 1. COUNTIFS + COUNTIFS

    Това е най-дългата формула, която се пише най-лесно :)

    =COUNTIFS(A2:A10, "ябълки", C2:C10, "доставени") + COUNTIFS(A2:A10, "банани", C2:C10, "доставени")) + COUNTIFS(A2:A10, "лимони", C2:C10, "доставени"))

    На снимката по-долу е показана същата формула с препратки към клетки:

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

    Формула 2. COUNTIFS с константа на масива

    Може да се създаде по-компактна формула COUNTIFS с логика AND/OR, като критериите OR се пакетират в константа на масив:

    =SUM(COUNTIFS(A2:A10, {"ябълки", "банани", "лимони"}, C2:C10, "доставени"))

    Когато използвате референтен диапазон за критериите, ви е необходима формула за масив, която се попълва с натискане на Ctrl + Shift + Enter :

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

    Съвет. Ако е необходимо, можете да използвате заместващи символи например, за да преброите всички видове банани, като например "зелени банани" или "банани със златни пръсти", можете да използвате тази формула:

    =SUM(COUNTIFS(A2:A10, {"ябълки", "*банани*", "лимони"}, C2:C10, "доставени"))

    По подобен начин можете да създадете формула за броене на клетките въз основа на други видове критерии. Например, за да получите брой на "ябълките", "бананите" или "лимоните", които са "доставени" и сумата е по-голяма от 200, добавете още една двойка критерии/обхват към COUNTIFS:

    =SUM(COUNTIFS(A2:A10, {"ябълки", "*банани*", "лимони"}, C2:C10, "доставени", B2:B10,">200"))

    Или използвайте тази формула за масиви (въведена чрез Ctrl + Shift + Enter ):

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

    Преброяване на клетките с множество условия OR

    В предишния пример научихте как да тествате един набор от условия ИЛИ. Но какво става, ако имате два или повече набора и искате да получите обща стойност на всички възможни връзки ИЛИ?

    В зависимост от броя на условията, които трябва да обработите, можете да използвате COUNTIFS с константа на масив или SUMPRODUCT с ISNUMBER MATCH. Първият вариант е сравнително лесен за създаване, но е ограничен само до 2 набора от условия OR. Вторият вариант може да оценява произволен брой условия (разумен брой, разбира се, като се има предвид ограничението на Excel до 255 аргумента и 8192 символа за общата дължина на формулата),но може да се наложи да положите известни усилия, за да разберете логиката на формулата.

    Преброяване на клетките с 2 набора от условия OR

    Когато се работи само с два набора от критерии OR, просто добавете още една константа на масива към формулата COUNTIFS, разгледана по-горе.

    За да работи формулата, е необходима една малка, но важна промяна: използвайте хоризонтален масив (елементи, разделени със запетаи) за един набор от критерии и вертикален масив (елементи, разделени с точка и запетая) за другия. Това указва на Excel да "сдвои" или "пресметне" елементите в двата масива и да върне двумерен масив с резултатите.

    Като пример, нека преброим "ябълки", "банани" или "лимони", които са "доставени" или "в процес на транспортиране":

    =SUM(COUNTIFS(A2:A10, {"ябълки", "банани", "лимони"}, B2:B10, {"доставени"; "в транзит"})

    Обърнете внимание на запетаята във втората константа на масива:

    Тъй като Excel е двуизмерна програма, не е възможно да се конструира триизмерен или четириизмерен масив и следователно тази формула работи само за два набора от критерии OR. За да пресметнете с повече критерии, ще трябва да преминете към по-сложната формула SUMPRODUCT, обяснена в следващия пример.

    Преброяване на клетки с няколко набора от условия OR

    За да преброите клетките с повече от два набора от критерии OR, използвайте функцията SUMPRODUCT заедно с ISNUMBER MATCH.

    Например, нека преброим "ябълки", "банани" или "лимони", които са "доставени" или "в процес на транспортиране" и са опаковани в "торба" или "тава":

    =SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"ябълки", "банани", "лимони"},0))*

    ISNUMBER(MATCH(B2:B10,{"чанта", "тава"},0))*

    ISNUMBER(MATCH(C2:C10,{"доставени", "в транзит"},0)))

    В сърцето на формулата функцията MATCH проверява критериите, като сравнява всяка клетка в посочения диапазон със съответната константа на масива. Ако се намери съответствие, тя връща относителна позиция на стойността, ако масивът е, N/A в противен случай. ISNUMBER преобразува тези стойности в TRUE и FALSE, които се равняват съответно на 1 и 0. SUMPRODUCT поема оттам и умножава масивите'Тъй като умножаването по нула дава нула, само клетките, които имат 1 във всички масиви, оцеляват и се сумират.

    Снимката на екрана по-долу показва резултата:

    Ето как използвате функциите COUNTIF и COUNTIFS в Excel, за да преброите клетките с множество условия AND и OR. За да разгледате по-отблизо формулите, разгледани в този урок, можете да изтеглите нашата примерна работна книга по-долу. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка

    Excel COUNTIF с условия OR - примери (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.