Excel: підрахунок комірок з певним текстом (повний і частковий збіг)

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

Урок показує, як підрахувати кількість клітинок з певним текстом в Excel. Ви знайдете приклади формул для точного збігу, часткового збігу та відфільтрованих клітинок.

Минулого тижня ми розглянули, як порахувати клітинки з текстом в Excel, тобто всі клітинки з будь-яким текстом. При аналізі великих масивів інформації вам також може знадобитися дізнатися, скільки клітинок містять конкретний текст. Цей урок пояснює, як це зробити простим способом.

    Як порахувати комірки з певним текстом в Excel

    В Microsoft Excel є спеціальна функція для умовного підрахунку комірок - функція COUNTIF. Все, що потрібно зробити, це вказати цільовий текстовий рядок в полі критерії аргумент.

    Ось загальна формула Excel для підрахунку кількості клітинок, що містять певний текст:

    COUNTIF(range, " текст ")

    Припустимо, у вас є список ідентифікаторів елементів у форматі А2:А10, і ви хочете порахувати кількість комірок з певним ідентифікатором, скажімо, "АА-01". Введіть цей рядок у другий аргумент, і ви отримаєте цю просту формулу:

    =COUNTIF(A2:A10, "AA-01")

    Щоб користувачі могли підраховувати клітинки з будь-яким текстом без необхідності змінювати формулу, введіть текст у заздалегідь визначену комірку, наприклад D1, і вкажіть посилання на комірку:

    =COUNTIF(A2:A10, D1)

    Примітка. Функція COUNTIF в Excel - це нечутливий до регістру тобто вона не розрізняє регістр букв. Щоб обробляти великі та малі літери по-різному, використовуйте цю формулу, що враховує регістр букв.

    Як порахувати комірки з певним текстом (частковий збіг)

    Формула, розглянута в попередньому прикладі, точно відповідає критеріям. Якщо в комірці є хоча б один інший символ, наприклад, зайвий пробіл в кінці, це не буде точним збігом, і така комірка не буде зарахована.

    Щоб знайти кількість клітинок, які містять певний текст у складі свого вмісту, використовуйте в критеріях підстановочні символи, а саме зірочку (*), яка позначає будь-яку послідовність або символи. Залежно від поставленої мети, формула може мати один з наступних виглядів.

    Підрахувати комірки, які містять певний текст за адресою на самому початку :

    COUNTIF(range, " текст *")

    Підрахувати комірки, які містять певний текст в будь-яка посада :

    COUNTIF(range, "* текст *")

    Наприклад, щоб знайти, скільки клітинок в діапазоні A2:A10 починаються на "AA", скористайтеся такою формулою:

    =COUNTIF(A2:A10, "AA*")

    Щоб отримати кількість клітин, що містять "АА" в будь-якій позиції, використовуйте цю:

    =COUNTIF(A2:A10, "*AA*")

    Щоб зробити формули більш динамічними, замініть жорстко закодовані рядки посиланнями на комірки.

    Підрахувати клітинки, які починаються з певного тексту:

    =COUNTIF(A2:A10, D1& "*")

    Порахувати комірки з певним текстом в будь-якому місці:

    =COUNTIF(A2:A10, "*"&D1&"*")

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

    Підрахунок комірок, що містять певний текст (з урахуванням регістру)

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

    Формула для підрахунку комірок з певним текстом з урахуванням регістру (точний збіг)

    Для підрахунку кількості комірок з певним текстом з розпізнаванням регістру тексту використаємо комбінацію функцій СУММЕСЛИ і ТОЧНО:

    SUMPRODUCT(--EXACT(" текст ", діапазон ))

    Як працює ця формула:

    • EXACT порівнює кожну комірку в діапазоні зі зразком тексту і повертає масив значень TRUE і FALSE, де TRUE представляє точні збіги, а FALSE - всі інші комірки. Подвійний дефіс (званий дефісом подвійний унарний ) примушує Істину і Брехню перетворювати на 1 і 0.
    • SUMPRODUCT підсумовує всі елементи масиву. Ця сума є кількістю одиниць, тобто кількістю збігів.

    Наприклад, щоб отримати кількість комірок A2:A10, які містять текст у комірці D1 і обробляють великі та малі літери як різні символи, використовуйте цю формулу:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Формула для підрахунку комірок з певним текстом з урахуванням регістру (частковий збіг)

    Для побудови формули, чутливої до регістру, яка може знайти потрібний текстовий рядок у будь-якій комірці, ми використовуємо 3 різні функції:

    SUMPRODUCT(--(ISUMBER(FIND(" текст ", діапазон ))))

    Як працює ця формула:

    • Функція ЗНАЙТИ з урахуванням регістру шукає шуканий текст в кожній комірці діапазону. Якщо це вдається, функція повертає позицію першого символу, інакше помилка #ЗНАЧ!. Для наочності, нам не потрібно знати точну позицію, будь-яке число (на відміну від помилки) означає, що комірка містить шуканий текст.
    • Функція ISNUMBER обробляє масив чисел і помилок, що повертаються функцією FIND, і перетворює числа в значення TRUE, а все інше - в значення FALSE. Подвійний унарний знак (--) перетворює логічні значення в одиниці і нулі.
    • SUMPRODUCT підсумовує масив 1 та 0 і повертає кількість комірок, які містять у своєму вмісті вказаний текст.

    Щоб перевірити формулу на реальних даних, знайдемо, скільки комірок в діапазоні A2:A10 містить підрядок, введений в D1:

    =SUMPRODUCT(--(ISUMBER(FIND(D1, A2:A10))))

    І це повертає кількість 3 (клітинки А2, А3 і А6):

    Як порахувати відфільтровані комірки з певним текстом

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

    Припустимо, у вас є таблиця з Ідентифікатори замовлень у колонці B та Кількість в колонці С, як показано на зображенні нижче. На даний момент Вас цікавлять тільки кількості, більші за 1, і Ви відфільтрували таблицю відповідним чином. Питання - як порахувати відфільтровані комірки з певним ідентифікатором?

    Формула для підрахунку відфільтрованих комірок з певним текстом (точний збіг)

    Для підрахунку відфільтрованих комірок, вміст яких повністю збігається зі зразком текстового рядка, використовуйте одну з наступних формул:

    =СУММЕСЛИ(СУММЕСЛИ(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))

    =СУМАРНИЙПРОДУКТ(ПІДСУМОК(103, ЗСУВ(A2:A10, РЯДОК(A2:A10) - MIN(РЯДОК(A2:A10)),,1)), --(B2:B10=F1))

    Де F1 - зразок тексту, а B2:B10 - клітинки для підрахунку.

    Як працюють ці формули:

    В основі обох формул ви виконуєте 2 перевірки:

    1. Визначити видимі і приховані рядки. Для цього використовується функція SUBTOTAL з кнопкою функція_номер Щоб передати всі посилання на окремі комірки в SUBTOTAL, використовуйте або INDIRECT (у першій формулі), або комбінацію OFFSET, ROW і MIN (у другій формулі). Оскільки ми прагнемо знайти видимі і приховані рядки, не має значення, на який стовпець посилатися (A в нашому прикладі). Результатом цієї операції є масив одиниць і нулів, де одиниці представляють видимі і приховані рядки.рядки та нулі - приховані рядки.
    2. Знайти комірки, що містять заданий текст. Для цього порівняти текст зразка (F1) з діапазоном комірок (B2:B10). Результатом цієї операції є масив значень TRUE і FALSE, які за допомогою оператора подвійного унарного зв'язування примушуються до 1 і 0.

    Нарешті, функція СУММЕСЛИ перемножує елементи двох масивів в однакових позиціях, а потім підсумовує отриманий масив. Оскільки множення на нуль дає нуль, тільки ті клітинки, які мають 1 в обох масивах, мають 1 в підсумковому масиві. Сума одиниць - це кількість відфільтрованих клітинок, які містять заданий текст.

    Формула для підрахунку відфільтрованих комірок з певним текстом (частковий збіг)

    Щоб зарахувати відфільтровані клітинки, що містять певний текст, до вмісту клітинки, змініть наведені вище формули наступним чином. Замість порівняння тексту зразка з діапазоном клітинок, виконайте пошук потрібного тексту за допомогою функцій НОМЕР і ЗНАЙТИ, як це було описано в одному з попередніх прикладів:

    =СУММЕСЛИ(СУММЕСЛИ(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(ISUMBER(FIND(F1, B2:B10))))

    В результаті формули будуть знаходити заданий текстовий рядок в будь-якій позиції комірки:

    Примітка: функція SUBTOTAL з 103 в параметрі функція_номер виявляє всі приховані комірки, відфільтровані і приховані вручну. В результаті, наведені вище формули враховують тільки видимі клітини Незалежно від того, як були приховані невидимі комірки. Щоб виключити тільки відфільтровані комірки, але включити ті, що були приховані вручну, використовуйте 3 для функція_номер .

    Ось так можна порахувати кількість клітинок з певним текстом в Excel. Дякую за прочитання і сподіваюся побачити Вас на нашому блозі наступного тижня!

    Доступні для завантаження

    Формули Excel для підрахунку комірок з певним текстом

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