Оглавление
В учебнике объясняется, как использовать функции COUNTIF и COUNTIFS Excel для подсчета ячеек с несколькими условиями OR, например, если ячейка содержит X, Y или Z.
Как всем известно, функция Excel COUNTIF предназначена для подсчета ячеек на основе только одного критерия, в то время как COUNTIFS оценивает несколько критериев с помощью логики AND. Но что если ваша задача требует логики OR - когда задано несколько условий, любое из которых может совпасть и быть включено в подсчет?
Существует несколько возможных решений этой задачи, и в этом учебнике они будут рассмотрены во всех подробностях. Примеры предполагают, что вы хорошо знаете синтаксис и общее назначение обеих функций. Если это не так, возможно, вам стоит начать с пересмотра основ:
Функция Excel COUNTIF - подсчитывает ячейки с одним критерием.
Функция Excel COUNTIFS - подсчитывает ячейки с несколькими критериями AND.
Теперь, когда все на одной волне, давайте начнем:
Подсчет ячеек с условиями OR в Excel
В данном разделе рассматривается простейший сценарий - подсчет клеток, удовлетворяющих любому (хотя бы одному) из указанных условий.
Формула 1. КОУНТИФ + КОУНТИФ
Самый простой способ подсчета ячеек, имеющих то или иное значение (Countif a или b ) - это написать обычную формулу COUNTIF для подсчета каждого элемента по отдельности, а затем сложить результаты:
КОУНТИФ( ассортимент , критерий1 ) + COUNTIF( ассортимент , критерий2 )В качестве примера выясним, сколько ячеек в столбце A содержат либо "яблоки", либо "бананы":
=COUNTIF(A:A, "яблоки") + COUNTIF(A:A, "бананы")
В реальных рабочих листах, чтобы формула работала быстрее, рекомендуется оперировать диапазонами, а не целыми столбцами. Чтобы не обновлять формулу при каждом изменении условий, введите интересующие вас элементы в заранее определенные ячейки, например F1 и G1, и ссылайтесь на эти ячейки. Например:
=COUNTIF(A2:A10, F1) + COUNTIF(A2:A10, G1)
Эта техника хорошо работает для пары критериев, но добавление трех или более функций COUNTIF вместе сделает формулу слишком громоздкой. В этом случае лучше использовать одну из следующих альтернатив.
Формула 2. COUNTIF с константой массива
Вот более компактная версия формулы SUMIF с условиями OR в Excel:
Формула строится таким образом:
Сначала вы упаковываете все условия в массив констант - отдельные элементы разделяются запятыми, а массив заключен в фигурные скобки, например {"яблоки", "бананы", "лимоны"}.
Затем, вы включаете константу массива в критерии аргумент обычной формулы COUNTIF: COUNTIF(A2:A10, {"яблоки", "бананы", "лимоны"})
Наконец, исказите формулу COUNTIF в функции SUM. Это необходимо потому, что COUNTIF вернет 3 отдельных подсчета для "яблок", "бананов" и "лимонов", а вам нужно сложить эти подсчеты вместе.
Наша полная формула выглядит следующим образом:
=SUM(COUNTIF(A2:A10,{"яблоки", "бананы", "лимоны"}))
Если вы предпочитаете предоставить свои критерии в виде ссылки на диапазон Чтобы формула стала формулой массива, нужно ввести ее с помощью Ctrl + Shift + Enter. Например:
=SUM(COUNTIF(A2:A10,F1:H1))
Обратите внимание на фигурные скобки на скриншоте ниже - это самый очевидный признак формулы массива в Excel:
Формула 3. SUMPRODUCT
Другой способ подсчета ячеек с помощью логики ИЛИ в 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 для оценки критерия И в каждом условии ИЛИ.
Формула 1. КОУНТИФЫ + КОУНТИФЫ
Это самая длинная формула, которую легче всего написать :)
=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))
Подсчет клеток с несколькими условиями ОР
В предыдущем примере вы узнали, как проверить один набор условий ИЛИ. Но что если у вас есть два или более наборов, и вы хотите получить общее количество всех возможных отношений ИЛИ?
В зависимости от того, сколько условий вам нужно обработать, вы можете использовать либо COUNTIFS с константой массива, либо SUMPRODUCT с ISNUMBER MATCH. Первый вариант относительно прост в построении, но он ограничен только 2 наборами условий OR. Второй может оценивать любое количество условий (разумное число, конечно, учитывая ограничение Excel на 255 аргументов и 8192 символа общей длины формулы),но может потребоваться некоторое усилие, чтобы понять логику формулы.
Подсчет клеток с 2 наборами условий ИЛИ
Когда приходится иметь дело только с двумя наборами критериев ИЛИ, просто добавьте еще одну константу массива к формуле COUNTIFS, рассмотренной выше.
Для того чтобы формула работала, необходимо одно небольшое, но критическое изменение: использовать горизонтальный массив (элементы разделены запятыми) для одного набора критериев и вертикальный массив (элементы, разделенные точкой с запятой) для другого. Это указывает Excel на "сопряжение" или "перекрестный расчет" элементов в двух массивах и возвращает двумерный массив результатов.
В качестве примера, давайте посчитаем "яблоки", "бананы" или "лимоны", которые либо "доставлены", либо "находятся в пути":
=SUM(COUNTIFS(A2:A10, {"яблоки", "бананы", "лимоны"}, B2:B10, {"доставлено"; "в пути"}))
Обратите внимание на точку с запятой во второй константе массива:
Поскольку Excel является 2-димензиональной программой, невозможно построить 3-димензиональный или 4-димензиональный массив, и поэтому эта формула работает только для двух наборов критериев ИЛИ. Чтобы считать с большим количеством критериев, вам придется перейти к более сложной формуле SUMPRODUCT, о которой рассказывается в следующем примере.
Подсчет клеток с несколькими наборами условий ИЛИ
Чтобы подсчитать ячейки с более чем двумя наборами критериев ИЛИ, используйте функцию 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)