Съдържание
В урока е обяснено как да използвате функциите 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 файл)