Подсчет символов «+» в таблицах Excel
Чтобы посчитать количество плюсов в Excel, используйте формулу =SUMPRODUCT(LEN(A1:A10)-LEN(SUBSTITUTE(A1:A10;"+";""))) — она найдет все вхождения символа «+» даже внутри текста ячеек. Если нужно посчитать только ячейки, которые содержат исключительно знак «+», подойдет более простая функция =COUNTIF(A1:A10; "+"). Выбор метода зависит от структуры ваших данных: находится ли плюс отдельно или является частью строки.
Подсчет ячеек, содержащих только знак «+»
Самый простой сценарий — когда знак «+» используется как маркер (например, «выполнено») и занимает ячейку целиком. В этом случае не нужно анализировать длину строки, достаточно проверить точное совпадение.
Используйте функцию СЧЁТЕСЛИ (COUNTIF):
=СЧЁТЕСЛИ(A1:A20; "+")
Эта формула просматривает диапазон и возвращает количество ячеек, значение которых в точности равно «+». Пустые ячейки или ячейки с текстом «А+Б» учитываться не будут.
Если в ячейках могут быть лишние пробелы (например, « + »), формула не сработает корректно. Очистите данные функцией СЖПРОБЕЛЫ (TRIM) или используйте подстановочные знаки: =СЧЁТЕСЛИ(A1:A20; "*+*"). Звездочки означают «любой текст до и после плюса».
Подсчет всех вхождений знака внутри текста
Часто плюс является частью формулы, кода или перечисления (например, «Москва+Казань+Уфа»). Стандартный СЧЁТЕСЛИ здесь не поможет, так как он считает ячейки, а не символы внутри них.
Для решения задачи используется комбинация функций ДЛСТР (LEN) и ПОДСТАВИТЬ (SUBSTITUTE), обернутая в СУММПРОИЗВ (SUMPRODUCT):
=СУММПРОИЗВ(ДЛСТР(A1:A10)-ДЛСТР(ПОДСТАВИТЬ(A1:A10;"+";"")))
Логика работы:
ДЛСТРизмеряет исходную длину текста в каждой ячейке.ПОДСТАВИТЬудаляет все знаки «+», превращая «А+Б» в «АБ».- Второй
ДЛСТРизмеряет длину текста без плюсов. - Разница между длинами показывает, сколько символов было удалено (то есть сколько было плюсов).
СУММПРОИЗВсуммирует эти разницы по всему диапазону.
Этот метод универсален и работает во всех версиях Excel.
Особенности для новых версий Excel (365 и 2021)
В современных версиях Excel доступны динамические массивы, что позволяет сделать формулы чуть более читаемыми, хотя принцип остается тем же. Можно использовать функцию ФИЛЬТР (FILTER) для предварительного отбора данных, если нужно считать плюсы только в определенных строках.
Пример подсчета плюсов только в тех ячейках, где есть слово «Отчет»:
=СУММПРОИЗВ(ДЛСТР(ФИЛЬТР(A1:A100; ЕЧИСЛО(ПОИСК("Отчет"; A1:A100))))-ДЛСТР(ПОДСТАВИТЬ(ФИЛЬТР(A1:A100; ЕЧИСЛО(ПОИСК("Отчет"; A1:A100))); "+"; "")))
Хотя формула выглядит громоздко, она позволяет гибко фильтровать данные без создания дополнительных столбцов.
Автоматизация через макрос VBA
Если вы работаете с огромными таблицами (сотни тысяч строк) или вам нужно часто повторять этот расчет, формулы могут замедлить работу файла. В таком случае лучше создать пользовательскую функцию на VBA.
- Нажмите
Alt + F11, чтобы открыть редактор кода. - Вставьте новый модуль (
Insert→Module). - Скопируйте следующий код:
Function CountPluses(rng As Range) As Long
Dim cell As Range
Dim total As Long
For Each cell In rng
If Not IsError(cell.Value) Then
total = total + Len(cell.Value) - Len(Replace(cell.Value, "+", ""))
End If
Next cell
CountPluses = total
End Function
Теперь в ячейке можно писать простую формулу: =CountPluses(A1:A1000). Макрос работает быстрее сложных массивных формул и игнорирует ошибки в ячейках.
Файлы с макросами необходимо сохранять в формате .xlsm (Excel с поддержкой макросов). При открытии такого файла на другом компьютере может потребоваться разрешение на выполнение макросов.
Частые ошибки при подсчете
| Проблема | Причина | Решение |
|---|---|---|
| Формула возвращает 0 | В ячейках есть пробелы вокруг знака | Используйте СЖПРОБЕЛЫ внутри формулы или найдите/замените пробелы |
| Ошибка #ЗНАЧ! | В диапазоне есть ячейки с ошибками или числами | Убедитесь, что диапазон содержит текст, или добавьте проверку ЕСЛИОШИБКА |
| Неверный разделитель | Использована запятая вместо точки с запятой | В русской версии Excel аргументы разделяются ; (точка с запятой) |
| Считаются скрытые символы | В тексте есть непечатаемые знаки | Используйте функцию ПЕЧСИМВ (CLEAN) перед подсчетом |
Часто задаваемые вопросы (FAQ)
Можно ли посчитать количество других символов, например, запятых?
Да, принцип тот же. Просто замените «+» в формуле на нужный символ. Для запятой формула будет выглядеть так: =СУММПРОИЗВ(ДЛСТР(A1:A10)-ДЛСТР(ПОДСТАВИТЬ(A1:A10;",";""))).
Как посчитать плюсы только в видимых (отфильтрованных) ячейках?
Стандартные формулы считают все ячейки диапазона, даже скрытые фильтром. Для подсчета только видимых потребуется функция, написанная на VBA, которая проверяет свойство Hidden у каждой строки, либо использование промежуточного столбца с формулой, который также фильтруется.
Работает ли это в Google Таблицах?
Да, синтаксис функций LEN, SUBSTITUTE и SUMPRODUCT в Google Sheets идентичен (разделитель аргументов может отличаться в зависимости от настроек региона — точка с запятой или запятая).