Оглавление
В уроке показано, как подсчитать количество ячеек с определенным текстом в Excel. Вы найдете примеры формул для точного совпадения, частичного совпадения и отфильтрованных ячеек.
На прошлой неделе мы рассмотрели, как подсчитать ячейки с текстом в Excel, то есть все ячейки с любым текстом. При анализе больших кусков информации вы можете также захотеть узнать, сколько ячеек содержат определенный текст. В этом уроке объясняется, как это сделать простым способом.
Как подсчитать ячейки с определенным текстом в Excel
В Microsoft Excel есть специальная функция для условного подсчета ячеек - функция COUNTIF. Все, что вам нужно сделать, это ввести целевую текстовую строку в поле критерии аргумент.
Вот общая формула Excel для подсчета количества ячеек, содержащих определенный текст:
COUNTIF(диапазон, " текст ")Предположим, у вас есть список идентификаторов элементов в A2:A10, и вы хотите подсчитать количество ячеек с определенным идентификатором, скажем, "AA-01". Введите эту строку во второй аргумент, и вы получите эту простую формулу:
=COUNTIF(A2:A10, "AA-01")
Чтобы пользователи могли подсчитывать ячейки с любым заданным текстом без необходимости изменять формулу, введите текст в предопределенную ячейку, например D1, и укажите ссылку на ячейку:
=COUNTIF(A2:A10, D1)
Примечание. Функция Excel COUNTIF является без учета регистра Чтобы по-разному обрабатывать прописные и строчные символы, используйте эту формулу, чувствительную к регистру.
Как подсчитать ячейки с определенным текстом (частичное совпадение)
Формула, рассмотренная в предыдущем примере, точно соответствует критериям. Если в ячейке есть хотя бы один другой символ, например, лишний пробел в конце, это не будет точным совпадением, и такая ячейка не будет учтена.
Чтобы найти количество ячеек, которые содержат определенный текст в своем содержимом, используйте в критериях символы подстановки, а именно звездочку (*), которая обозначает любую последовательность или символы. В зависимости от вашей цели, формула может выглядеть следующим образом.
Подсчет ячеек, содержащих определенный текст в самое начало :
COUNTIF(диапазон, " текст *")Подсчет ячеек, содержащих определенный текст в любое положение :
COUNTIF(диапазон, "* текст *")Например, чтобы найти, сколько ячеек в диапазоне A2:A10 начинаются с "AA", используйте эту формулу:
=COUNTIF(A2:A10, "AA*")
Чтобы получить количество ячеек, содержащих "AA" в любой позиции, используйте этот вариант:
=COUNTIF(A2:A10, "*AA*")
Чтобы сделать формулы более динамичными, замените закодированные строки ссылками на ячейки.
Для подсчета ячеек, начинающихся с определенного текста:
=COUNTIF(A2:A10, D1& "*")
Подсчет ячеек с определенным текстом в любом месте:
=COUNTIF(A2:A10, "*"&D1&"*")
На скриншоте ниже показаны результаты:
Подсчет ячеек, содержащих определенный текст (чувствительный к регистру)
В ситуации, когда вам нужно различать прописные и строчные символы, функция COUNTIF не работает. В зависимости от того, ищете ли вы точное или частичное совпадение, вам придется построить другую формулу.
Формула с учетом регистра для подсчета ячеек с определенным текстом (точное совпадение)
Для подсчета количества ячеек с определенным текстом, распознающим регистр текста, мы будем использовать комбинацию функций SUMPRODUCT и EXACT:
SUMPRODUCT(--EXACT(" текст ", ассортимент ))Как работает эта формула:
- EXACT сравнивает каждую ячейку в диапазоне с текстом образца и возвращает массив значений TRUE и FALSE, TRUE представляет точные совпадения, FALSE - все остальные ячейки. Двойной дефис (называемый двойной унарный ) переводит TRUE и FALSE в 1 и 0.
- SUMPRODUCT суммирует все элементы массива. Эта сумма представляет собой количество единиц, что является количеством совпадений.
Например, чтобы получить количество ячеек в A2:A10, которые содержат текст в D1 и обрабатывают прописные и строчные буквы как разные символы, используйте эту формулу:
= СУММАРНЫЙ ПРОДУКТ(--EXACT(D1, A2:A10))
Формула с учетом регистра для подсчета ячеек с определенным текстом (частичное совпадение)
Чтобы построить формулу, чувствительную к регистру, которая может найти интересующую текстовую строку в любом месте ячейки, мы используем 3 различные функции:
SUMPRODUCT(--(ISNUMBER(FIND(" текст ", ассортимент ))))Как работает эта формула:
- Чувствительная к регистру функция FIND ищет целевой текст в каждой ячейке диапазона. Если это удается, функция возвращает позицию первого символа, иначе - ошибку #VALUE! Для ясности нам не нужно знать точную позицию, любое число (в отличие от ошибки) означает, что ячейка содержит целевой текст.
- Функция ISNUMBER обрабатывает массив чисел и ошибок, возвращаемых FIND, и преобразует числа в TRUE, а все остальное - в FALSE. Двойная унарная (--) преобразует логические значения в единицы и нули.
- SUMPRODUCT суммирует массив 1 и 0 и возвращает количество ячеек, которые содержат указанный текст в качестве части своего содержимого.
Чтобы проверить формулу на реальных данных, давайте найдем, сколько ячеек в A2:A10 содержат подстроку, введенную в D1:
=SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))
И это возвращает счетчик 3 (ячейки A2, A3 и A6):
Как подсчитать отфильтрованные ячейки с определенным текстом
считать видимые элементы в отфильтрованном списке необходимо использовать комбинацию из 4 или более функций в зависимости от того, хотите ли вы получить точное или частичное совпадение. Чтобы было легче следовать примерам, давайте сначала рассмотрим исходные данные.
Предположим, у вас есть таблица с Идентификаторы заказов в колонке B и Количество в столбце C, как показано на рисунке ниже. На данный момент вас интересуют только количества, превышающие 1, и вы отфильтровали свою таблицу соответствующим образом. Вопрос в том, как подсчитать отфильтрованные ячейки с определенным идентификатором?
Формула для подсчета отфильтрованных ячеек с определенным текстом (точное совпадение)
Чтобы подсчитать отфильтрованные ячейки, содержимое которых точно соответствует текстовой строке образца, используйте одну из следующих формул:
=SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1)))
=SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1))
Где F1 - текст примера, а B2:B10 - ячейки для подсчета.
Как работают эти формулы:
В основе обеих формул лежат 2 проверки:
- Определите видимые и скрытые строки. Для этого вы используете функцию SUBTOTAL с параметром function_num Чтобы передать все ссылки на отдельные ячейки в SUBTOTAL, используйте либо INDIRECT (в первой формуле), либо комбинацию OFFSET, ROW и MIN (во второй формуле). Поскольку мы стремимся найти видимые и скрытые строки, не имеет значения, на какой столбец ссылаться (A в нашем примере). Результатом этой операции является массив из 1 и 0, где единицы представляют видимые строки.ряды и нули - скрытые ряды.
- Найдите ячейки, содержащие заданный текст. Для этого сравните текст образца (F1) с диапазоном ячеек (B2:B10). Результатом этой операции является массив значений TRUE и FALSE, которые принудительно преобразуются в 1 и 0 с помощью двойного унарного оператора.
Наконец, функция SUMPRODUCT перемножает элементы двух массивов в одинаковых позициях, а затем суммирует полученный массив. Поскольку умножение на ноль дает ноль, только те ячейки, которые имеют 1 в обоих массивах, имеют 1 в конечном массиве. Сумма 1 - это количество отфильтрованных ячеек, которые содержат указанный текст.
Формула для подсчета отфильтрованных ячеек с определенным текстом (частичное совпадение)
Чтобы подсчитать отфильтрованные ячейки, содержащие определенный текст как часть содержимого ячейки, измените приведенные выше формулы следующим образом. Вместо того чтобы сравнивать текст образца с диапазоном ячеек, выполните поиск целевого текста с помощью ISNUMBER и FIND, как объяснялось в одном из предыдущих примеров:
=SUMPRODUCT(SUBTOTAL(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)), --(ISNUMBER(FIND(F1, B2:B10))))
В результате формулы будут находить заданную текстовую строку в любой позиции ячейки:
Примечание. Функция СУММЕСЛИ при 103 в function_num аргумент, определяет все скрытые ячейки, отфильтрованные и скрытые вручную. В результате, приведенные выше формулы подсчитывают только видимые клетки независимо от того, насколько невидимые ячейки были скрыты. Чтобы исключить только отфильтрованные ячейки, но включить те, которые были скрыты вручную, используйте 3 для function_num .
Вот как подсчитать количество ячеек с определенным текстом в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Доступные загрузки
Формулы Excel для подсчета ячеек с определенным текстом