Как посчитать количество плюсов (+) в Excel: от СЧЁТЕСЛИ до Power Query

Почему подсчёт плюсов в Excel — не такая простая задача, как кажется

На первый взгляд, подсчитать количество знаков «+» в таблице Microsoft Excel или Google Sheets кажется тривиальной задачей. Однако здесь кроется несколько подводных камней, о которых многие пользователи даже не подозревают. Во-первых, символ «+» может встречаться в разных контекстах: как математический оператор в формулах, как часть текстовой строки (например, в оценках «++» или телефонных кодах), или даже как элемент форматирования (например, в маркерах списков). Во-вторых, стандартные функции вроде СЧЁТЕСЛИ не всегда корректно обрабатывают символы — они ищут точные совпадения ячеек, а не вхождения подстрок.

Допустим, у вас есть столбец с оценками студентов в формате «+», «++», «+-», и вам нужно посчитать, сколько раз встречается хотя бы один плюс. Или другой случай: в ячейках хранятся формулы типа =A1+B1, и вы хотите узнать, сколько раз используется оператор сложения. Для каждого сценария потребуется свой подход — от простых функций до продвинутых техник с регулярными выражениями. В этой статье мы разберём 5 универсальных методов, которые покроют 90% практических задач, включая обработку больших массивов данных и динамические таблицы.

Метод 1: Функция СЧЁТЕСЛИ для простого подсчёта ячеек с «+»

Если вам нужно посчитать количество ячеек, которые полностью состоят из символа «+» (например, в столбце стоят только плюсы или пустые ячейки), достаточно стандартной функции СЧЁТЕСЛИ. Этот способ подойдёт для базовых случаев, когда плюс — единственный символ в ячейке.

Формула будет выглядеть так:

=СЧЁТЕСЛИ(диапазон;"+")

Например, для диапазона A1:A100:

=СЧЁТЕСЛИ(A1:A100;"+")
  • Плюсы метода: простота, не требует знания сложных функций, работает во всех версиях Excel.
  • Минусы: не учитывает ячейки, где «+» часть текста (например, «A+» или «+1»), игнорирует плюсы в формулах.
⚠️ Внимание: Если в ячейке есть пробелы до или после плюса (например," +"), функция СЧЁТЕСЛИ не сработает. Используйте ТРИМ для очистки данных:
=СЧЁТЕСЛИ(ТРИМ(диапазон);"+")

Метод 2: Подсчёт вхождений «+» в тексте с помощью ДЛСТР и ПОДСТАВИТЬ

Когда плюс является частью текстовой строки (например, в ячейке написано «Результат: +5» или «A++»), стандартный СЧЁТЕСЛИ бесполезен. Здесь поможет комбинация функций ДЛСТР (длина строки) и ПОДСТАВИТЬ, которая позволяет посчитать количество конкретных символов в тексте.

Формула для одной ячейки:

=ДЛСТР(A1) - ДЛСТР(ПОДСТАВИТЬ(A1;"+";""))

Чтобы посчитать общее количество плюсов в диапазоне, используйте СУММПРОИЗВ:

=СУММПРОИЗВ(ДЛСТР(A1:A100) - ДЛСТР(ПОДСТАВИТЬ(A1:A100;"+";"")))
ЯчейкаСодержимоеКоличество «+»
A1++2
A2Результат: +101
A3Оценка: A+1
A4=A1+B11
A5Нет данных0

Этот метод универсален и работает даже с формулами (если они отображаются как текст). Однако он не различает плюсы как математические операторы и как части текста. Например, в ячейке с формулой =A1+B1 он посчитает плюс, хотя визуально в ячейке может отображаться результат вычисления (например, число 15).

Как посчитать плюсы только в видимом тексте (игнорируя формулы)

Если нужно учитывать только те плюсы, которые отображаются в ячейке (а не скрыты в формулах), сначала преобразуйте формулы в значения: выделите диапазон → КопироватьСпециальная вставка → Значения.

Метод 3: Продвинутый подсчёт с функцией НАЙТИ и обработкой ошибок

Если вам нужно не просто посчитать количество плюсов, но и найти их позиции в тексте (например, для дальнейшего анализа), используйте функцию НАЙТИ в сочетании с ЕСЛИОШИБКА. Этот метод полезен, когда плюсы могут находиться в разных частях строки, и вам важно их локализовать.

Пример формулы для поиска первого вхождения «+» в ячейке A1:

=ЕСЛИОШИБКА(НАЙТИ("+"; A1); 0)

Чтобы посчитать все вхождения, используйте массивную формулу (в новых версиях Excel введите её и нажмите Ctrl+Shift+Enter):

=СУММ(

--НЕ(ЕОШ(НАЙТИ(

"+";

ПСТР(A1; СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1))); 1)

)))

)

  • 🔍 Где применимо: анализ логов, парсинг сложных строк (например, химические формулы или математические выражения).
  • Бонус: можно модифицировать для поиска нескольких символов подряд (например, «++»).
  • ⚠️ Ограничение: в старых версиях Excel массивные формулы могут замедлять работу с большими данными.
📊 Какой метод подсчёта плюсов вы используете чаще?
СЧЁТЕСЛИ
ДЛСТР+ПОДСТАВИТЬ
НАЙТИ+массивы
Power Query
Другой

Метод 4: Power Query для обработки больших массивов данных

Если вам нужно обработать десятки тысяч строк или регулярно обновлять данные, ручные формулы станут тормозить производительность. В этом случае оптимально использовать Power Query — инструмент для извлечения, преобразования и загрузки данных (доступен в Excel 2016+ и Microsoft 365).

Алгоритм действий:

  1. Выделите исходный диапазон → перейдите на вкладку ДанныеИз таблицы/диапазона (Excel автоматически преобразует данные в таблицу).
  2. В редакторе Power Query добавьте настраиваемый столбец с формулой:
    = Text.Count([ВашСтолбец];"+")

    где [ВашСтолбец] — название столбца с данными.

  3. Загрузите данные обратно в Excel. В новом столбце появится количество плюсов для каждой строки.

Преимущества Power Query:

  • 🚀 Производительность: обрабатывает миллионы строк без замедления.
  • 🔄 Автоматизация: обновляет результаты при изменении исходных данных.
  • 🛠️ Гибкость: можно добавить дополнительные преобразования (например, фильтрацию или замену символов).
⚠️ Внимание: Power Query чувствителен к регистру. Если в данных встречаются символы «+» в разных кодировках (например, из копированного текста), используйте Text.Replace для нормализации:
= Text.Count(Text.Replace([ВашСтолбец];"";"+");"+")

(Здесь «» — это полноширинный плюс, который может попасть в данные при копировании из PDF или веб-страниц.)

Удалить лишние пробелы (Text.Trim)|Заменить нестандартные символы (например,"" на"+")|Проверить кодировку текста|Преобразовать формулы в значения (если нужно)

-->

Метод 5: VBA-скрипт для автоматизации и сложных условий

Если вам нужно не только посчитать плюсы, но и выполнить дополнительные действия (например, выделить ячейки с плюсами цветом или скопировать их в другой лист), на помощь придёт VBA (Visual Basic for Applications). Этот метод требует базовых знаний программирования, но открывает максимальные возможности.

Пример скрипта для подсчёта плюсов в выделенном диапазоне:

Sub CountPluses

Dim rng As Range

Dim cell As Range

Dim totalPluses As Long

totalPluses = 0

Set rng = Selection

For Each cell In rng

totalPluses = totalPluses + (Len(cell.Value) - Len(Replace(cell.Value,"+","")))

Next cell

MsgBox"Общее количество плюсов:" & totalPluses, vbInformation

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон в Excel и запустите макрос (F5).

Скрипт можно модифицировать для:

  • 🎨 Выделения ячеек: добавить cell.Interior.Color = RGB(255, 200, 200) для подсветки ячеек с плюсами.
  • 📊 Экспорта результатов: записать данные в новый лист или файл.
  • 🔍 Сложной логики: например, игнорировать плюсы в формулах или учитывать только удвоенные «++».

Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при подсчёте символов. Вот наиболее распространённые ловушки и способы их обхода:

ОшибкаПричинаРешение
Функция не видит плюсы в формулахВ ячейке отображается результат вычисления, а не сама формула.Преобразуйте формулы в текст (Формулы → Показать формулы или Ctrl + `).
СЧЁТЕСЛИ игнорирует ячейки с пробеламиПробелы до/после плюса мешают точному совпадению.Используйте ТРИМ или подстановочный знак +.
ДЛСТР возвращает ошибку #ЗНАЧ!В диапазоне есть ошибки (например, #ДЕЛ/0!).Оберните формулу в ЕСЛИОШИБКА:
Power Query не обновляет данныеНе настроено автоматическое обновление.Проверьте параметры запроса (Свойства → Обновить при открытии файла).

Ещё одна частая проблема — невидимые символы. Например, если данные импортированы из PDF или веб-страницы, плюс может быть представлен как:

  • Символ Unicode: «» (полноширинный плюс, код U+FF0B).
  • HTML-сущность: «+» (встречается при копировании с веб-сайтов).
  • Пробельные символы: плюс может быть окружён неразрывными пробелами (U+00A0).

Чтобы очистить данные, используйте комбинацию функций:

=ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(A1; СИМВОЛ(65289);"");"";"+"

);

СИМВОЛ(160);""

)

FAQ: Ответы на частые вопросы

Можно ли посчитать плюсы в защищённых ячейках или на защищённых листах?

Да, но с ограничениями:

  • Формулы (СЧЁТЕСЛИ, ДЛСТР) работают на защищённых листах, если разрешены вычисления.
  • Power Query и VBA требуют разблокировки листа или ячеек (в Рецензирование → Разрешить изменение диапазонов).

Если лист защищён паролем, который вы не знаете, используйте Google Sheets — там нет жёсткой защиты на уровне ячеек.

Как посчитать плюсы в диапазоне, где данные обновляются в реальном времени?

Для динамических данных подойдут:

  1. Power Query: настройте автоматическое обновление (Данные → Обновить все).
  2. Таблицы Excel: преобразуйте диапазон в таблицу (Ctrl + T), а формулы используйте как вычисляемые столбцы.
  3. VBA: добавьте в скрипт триггер на изменение данных (Worksheet_Change).

Пример события VBA для автоматического подсчёта:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A100")) Is Nothing Then

Application.EnableEvents = False

Range("B1").Value ="Обновлено:" & Now

' Здесь добавьте код подсчёта плюсов

Application.EnableEvents = True

End If

End Sub

Чем отличается подсчёт плюсов в Excel и Google Sheets?

Основные различия:

ФункцияExcelGoogle Sheets
СЧЁТЕСЛИ=COUNTIF(A1:A100;"+")=COUNTIF(A1:A100;"+")
ДЛСТР + ПОДСТАВИТЬ=LEN(A1)-LEN(SUBSTITUTE(A1;"+";""))=LEN(A1)-LEN(SUBSTITUTE(A1;"+";""))
Регулярные выраженияТолько через VBA=REGEXMATCH(A1;"+")
Power QueryВстроен в Excel 2016+Аналог — Google Apps Script

В Google Sheets проще работать с регулярными выражениями. Например, чтобы посчитать количество ячеек с хотя бы одним плюсом:

=COUNTA(FILTER(A1:A100; REGEXMATCH(A1:A100;"+")))
Как посчитать плюсы в формулах, не преобразуя их в текст?

Это невозможно сделать стандартными функциями, так как Excel хранит в ячейке результат вычисления, а не саму формулу. Обходные пути:

  1. Включить режим отображения формул: Формулы → Показать формулы (или Ctrl + `), затем применить любой метод подсчёта.
  2. Использовать VBA: скрипт может читать свойство .Formula ячейки даже если отображается результат.
  3. Экспортировать в CSV: при сохранении в формате CSV формулы преобразуются в текст.

Пример VBA для чтения формул:

Sub CountPlusesInFormulas

Dim cell As Range

Dim plusCount As Long

plusCount = 0

For Each cell In Selection

plusCount = plusCount + (Len(cell.Formula) - Len(Replace(cell.Formula,"+","")))

Next cell

MsgBox"Плюсов в формулах:" & plusCount, vbInformation

End Sub

Можно ли посчитать плюсы в закрытой книге Excel без её открытия?

Да, но только с помощью VBA или внешних инструментов:

  • VBA: используйте метод Workbooks.Open с параметром UpdateLinks:=False и ReadOnly:=True, чтобы открыть файл в фоновом режиме.
  • Power Query: подключитесь к закрытой книге как к внешнему источнику данных.
  • Сторонние утилиты: например, Python с библиотекой openpyxl или pandas.

Пример VBA для подсчёта в закрытой книге:

Sub CountPlusesInClosedFile

Dim wb As Workbook

Dim ws As Worksheet

Dim plusCount As Long

Set wb = Workbooks.Open("C:\Путь\к\файлу.xlsx", ReadOnly:=True)

Set ws = wb.Sheets(1)' Первый лист

plusCount = Application.WorksheetFunction.SumProduct(

Len(ws.Range("A1:A100")) - Len(Replace(ws.Range("A1:A100"),"+",""))

)

wb.Close False

MsgBox"Плюсов в закрытой книге:" & plusCount, vbInformation

End Sub