Excel COUNTIF і COUNTIF з логікою АБО

  • Поділитися Цим
Michael Brown

У посібнику пояснюється, як використовувати функції СЧЕТЕСЛИ і СЧЕТЕСЛИ в Excel для підрахунку клітинок з декількома умовами АБО, наприклад, якщо клітинка містить X, Y або Z.

Як відомо, функція підрахунку Excel COUNTIF призначена для підрахунку комірок на основі лише одного критерію, тоді як COUNTIFS оцінює кілька критеріїв за допомогою логіки І. Але що робити, якщо ваша задача вимагає логіки АБО - коли передбачено кілька умов, будь-яка з них може збігатися, щоб бути включеною в підрахунок?

Існує кілька можливих варіантів вирішення цього завдання, і в цьому посібнику ми розглянемо їх у всіх деталях. Приклади припускають, що ви добре знаєте синтаксис і загальне використання обох функцій. Якщо це не так, ви можете почати з повторення основ:

Функція Excel COUNTIF - підрахунок комірок з одним критерієм.

Функція підрахунку Excel COUNTIFS - підрахунок комірок з декількома критеріями AND.

Тепер, коли всі на одній хвилі, давайте зануримося:

    Підрахунок комірок з умовами АБО в Excel

    У цьому розділі розглядається найпростіший сценарій - підрахунок комірок, які відповідають будь-якій (хоча б одній) із зазначених умов.

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

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

    COUNTIF( діапазон , критерій1 ) + COUNTIF( діапазон , критерій2 )

    Як приклад, з'ясуємо, скільки клітинок у стовпчику А містять або "яблука", або "банани":

    =COUNTIF(A:A, "apples") + COUNTIF(A:A, "bananas")

    У реальних робочих аркушах рекомендується оперувати діапазонами, а не цілими стовпчиками, щоб формула працювала швидше. Щоб не оновлювати формулу щоразу, коли змінюються умови, введіть елементи, які вас цікавлять, у заздалегідь визначені комірки, скажімо, F1 і G1, і зробіть посилання на ці комірки. Наприклад:

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

    Цей метод добре працює для декількох критеріїв, але додавання трьох або більше функцій COUNTIF разом зробить формулу занадто громіздкою. У цьому випадку краще дотримуватися однієї з наступних альтернатив.

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

    Ось більш компактна версія формули SUMIF з умовами АБО в Excel:

    SUM(COUNTIF( діапазон , { критерій1 , критерій2 , критерій3 , ...}))

    Формула побудована таким чином:

    Спочатку ви упаковуєте всі умови в константу масиву - окремі елементи, розділені комами, і масив, укладений у фігурні дужки типу {"яблука", "банани", "лимони"}.

    Потім константа масиву включається в константу масиву критерії аргумент звичайної формули COUNTIF: COUNTIF(A2:A10, {"apples", "bananas", "lemon"})

    Нарешті, деформуйте формулу COUNTIF у функції SUM. Це необхідно тому, що COUNTIF поверне 3 окремі значення для "яблук", "бананів" і "лимонів", а вам потрібно скласти ці значення разом.

    Наша повна формула виглядає наступним чином:

    =SUM(COUNTIF(A2:A10,{"apples", "bananas", "lemon"}))

    Якщо ви бажаєте надати свої критерії у вигляді посилання на діапазони для того, щоб формула стала формулою масиву, потрібно ввести формулу з комбінацією клавіш Ctrl + Shift + Enter. Наприклад:

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

    Зверніть увагу на фігурні дужки на скріншоті нижче - це найбільш наочна ознака формули масиву в Excel:

    Формула 3. СУМАРНИЙ ПРОДУКТ

    Ще одним способом підрахунку комірок з логікою АБО в Excel є використання функції СУММЕСЛИ таким чином:

    SUMPRODUCT(1*( діапазон ={ критерій1 , критерій2 , критерій3 , ...}))

    Для кращої візуалізації логіки це також можна записати як:

    ПІДСУМОК(( діапазон = критерій1 ) + ( діапазон = критерій2 ) + ...)

    Формула перевіряє кожну комірку діапазону на відповідність кожному критерію і повертає значення ІСТИНА, якщо критерій виконується, інакше - ЛОЖЬ. В якості проміжного результату ви отримуєте кілька масивів значень ІСТИНА і ЛОЖЬ (кількість масивів дорівнює кількості ваших критеріїв). Потім елементи масиву, що знаходяться на одній позиції, складаються разом, тобто перші елементи у всіх масивах, другі елементи і т.д. В результаті ви отримуєтеоперація додавання перетворює логічні значення в числа, тому в результаті ви отримуєте один масив з 1 (один з критеріїв відповідає) і 0 (жоден з критеріїв не відповідає). Оскільки всі критерії перевіряються в одних і тих же комірках, в результуючому масиві не може з'явитися жодного іншого числа - тільки один початковий масив може мати значення TRUE в конкретній позиції, інші будуть мати значення FALSE. Нарешті, SUMPRODUCTпідсумовує елементи отриманого масиву, і ви отримуєте потрібну кількість.

    Перша формула працює аналогічно, з тією різницею, що повертає один 2-вимірний масив значень TRUE і FALSE, які ви множите на 1 для перетворення логічних значень в 1 і 0 відповідно.

    У застосуванні до нашого вибіркового набору даних формули набувають наступного вигляду:

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

    Або

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

    Замініть жорстко закодовану константу масиву посиланням на діапазон, і ви отримаєте ще більш елегантне рішення:

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

    Примітка: функція SUMPRODUCT працює повільніше, ніж COUNTIF, тому цю формулу краще використовувати на відносно невеликих наборах даних.

    Підрахунок комірок за допомогою логіки АБО, а також І

    При роботі з великими масивами даних, які мають багаторівневі та міжрівневі зв'язки між елементами, є ймовірність, що вам потрібно буде підраховувати комірки з умовами АБО та І одночасно.

    Для прикладу, давайте порахуємо "яблука", "банани" та "лимони", які "поставляються". Як це зробити? Для початку переведемо наші умови на мову Excel:

    • Колонка А: "яблука" або "банани" або "лимони"
    • Графа С: "поставлено"

    Дивлячись під іншим кутом, нам потрібно порахувати рядки з "яблуками і доставлено" АБО "бананами і доставлено" АБО "лимонами і доставлено". Таким чином, завдання зводиться до підрахунку клітинок з 3 умовами АБО - точно так само, як ми робили в попередньому розділі! Єдина відмінність полягає в тому, що Ви будете використовувати COUNTIFS замість COUNTIF для оцінки критерію І в кожній умові АБО.

    Формула 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. COUNTIF з константою масиву

    Більш компактну формулу 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))

    Підрахунок комірок з декількома умовами АБО

    У попередньому прикладі ви навчилися тестувати один набір умов АБО. Але що робити, якщо у вас є два або більше наборів і ви хочете отримати загальну суму всіх можливих відношень АБО?

    Залежно від того, скільки умов потрібно обробити, можна використовувати або СЧЕТЕСЛИ з константою масиву, або СУММЕСЛИ з числовим збігом. Першу відносно легко побудувати, але вона обмежена лише 2 наборами умов АБО. Друга може обчислювати будь-яку кількість умов (розумну кількість, звичайно, враховуючи обмеження Excel на 255 аргументів і 8192 символів на загальну довжину формули),але для того, щоб зрозуміти логіку формули, можуть знадобитися певні зусилля.

    Порахувати комірки з 2 наборами умов АБО

    Якщо ви маєте справу тільки з двома наборами критеріїв АБО, просто додайте ще одну константу масиву до формули COUNTIFS, розглянутої вище.

    Для того, щоб формула запрацювала, необхідно внести одну хвилинну, але критично важливу зміну: використовуйте горизонтальний масив (елементи через кому) для одного набору критеріїв та вертикальний масив (Це вказує Excel "об'єднати" або "перехресно обчислити" елементи двох масивів і повернути двовимірний масив результатів.

    Як приклад, візьмемо "яблука", "банани" чи "лимони", які або "доставлені", або "знаходяться в дорозі":

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

    Зверніть увагу на крапку з комою у другій константі масиву:

    Оскільки Excel є 2-вимірною програмою, неможливо побудувати 3-вимірний або 4-вимірний масив, і тому ця формула працює тільки для двох наборів критеріїв АБО. Для підрахунку з більшою кількістю критеріїв вам доведеться перейти до більш складної формули СУММЕСЛИ, яка пояснюється в наступному прикладі.

    Підрахунок комірок з декількома наборами умов АБО

    Для підрахунку комірок з більш ніж двома наборами критеріїв АБО використовуйте функцію СУММЕСЛИ разом з функцією СООТВЕТСТВИЕ ЧИСЛА.

    Наприклад, давайте порахуємо "яблука", "банани" або "лимони", які або "доставлені", або "знаходяться в дорозі" і упаковані або в "мішок", або в "лоток":

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

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

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

    В основі формули лежить функція СРЗНАЧ перевіряє критерії, порівнюючи кожну комірку в зазначеному діапазоні з відповідною константою масиву. Якщо збіг знайдено, вона повертає відносну позицію значення, якщо масив, інакше - НІ. ISNUMBER перетворює ці значення в ІСТИНА і ХИБНІСТЬ, які прирівнюються до 1 і 0 відповідно. SUMPRODUCT забирає його звідти, і перемножує масиви'Оскільки множення на нуль дає нуль, то виживають і підсумовуються лише ті клітинки, які мають 1 у всіх масивах.

    Скріншот нижче демонструє результат:

    Ось як ви використовуєте функції COUNTIF і COUNTIFS в Excel для підрахунку комірок з декількома умовами AND, а також OR. Щоб детальніше ознайомитися з формулами, розглянутими в цьому уроці, ви можете завантажити наш зразок робочого зошита нижче. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Практичний посібник

    Excel СЧЕТЧИК з умовами АБО - приклади (файл .xlsx)

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.