Мастер подсчета данных в Excel: от длины текста до цвета ячеек

Иван Корнев·13.04.2026·4 мин

Чтобы быстро посчитать количество символов в ячейке, используйте функцию =ДЛСТР(ячейка). Для подсчета ячеек по цвету заливки стандартных функций нет — потребуется макрос VBA или фильтр с функцией ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Суммирование диапазона выполняется через =СУММ(), а для условий — =СУММЕСЛИ(). Ниже приведены точные формулы и инструкции для решения этих задач без лишней теории.

Краткий ответ:

  • Буквы: =ДЛСТР(A1)
  • Цвет: Макрос CountColor или фильтр + =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; диапазон)
  • Сумма: =СУММ(A1:A10)

Подсчет количества символов и букв

Функция ДЛСТР (англ. LEN) возвращает общее количество знаков в текстовой строке, включая пробелы, цифры и знаки препинания. Это базовый инструмент для проверки ввода данных или подготовки текста.

Базовый подсчет всех символов

Введите формулу в свободную ячейку:

=ДЛСТР(A1)

Если в A1 написано «Привет», результат будет 6. Если «Привет мир» (с пробелом) — 10.

Исключение пробелов и лишних знаков

Часто требуется узнать длину только смысловой части текста.

  • Без пробелов: Убираем все пробелы перед подсчетом.
  =ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))
  • Только буквы (кириллица): Удаляем всё, что не является русской буквой.
  =ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"а";"");"б";"");"в";"");"г";"");"д";"");"е";"");"ё";"");"ж";"");"з";"");"и";"");"й";"");"к";"");"л";"");"м";"");"н";"");"о";"");"п";"");"р";"");"с";"");"т";"");"у";"");"ф";"");"х";"");"ц";"");"ч";"");"ш";"");"щ";"");"ъ";"");"ы";"");"ь";"");"э";"");"ю";"");"я";""))

Примечание: Формула выше громоздка. Проще использовать вспомогательный столбец или макрос для сложной очистки.

Подсчет слов в ячейке

Количество слов определяется по числу пробелов + 1:

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

Если ячейка пустая, формула вернет 1. Чтобы исправить это, оберните в ЕСЛИ:

=ЕСЛИ(ДЛСТР(ПРОБЕЛЫ(A1))=0; 0; ДЛСТР(ПРОБЕЛЫ(A1))-ДЛСТР(ПОДСТАВИТЬ(ПРОБЕЛЫ(A1);" ";""))+1)

Массовый подсчет: Функция ДЛСТР не работает с диапазонами напрямую (например, ДЛСТР(A1:A10) выдаст ошибку). Чтобы посчитать сумму символов во всем столбце, используйте: =СУММПРОИЗВ(ДЛСТР(A1:A10))

Как посчитать количество ячеек по цвету

Стандартные функции Excel игнорируют форматирование (цвет шрифта или фона). Для решения этой задачи есть два пути: использование макроса (надежно) или фильтрации (быстро, но вручную).

Способ 1: Пользовательская функция (VBA)

Этот метод создает новую функцию, которая видит цвет.

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert > Module.
  3. Вставьте следующий код:
    Function CountByColor(Diapazon As Range, Obrazec As Range) As Long
        Dim Yacheyka As Range
        Dim ColorIndex As Long
        Dim Result As Long
        
        ColorIndex = Obrazec.Interior.Color
        Result = 0
        
        For Each Yacheyka In Diapazon
            If Yacheyka.Interior.Color = ColorIndex Then
                Result = Result + 1
            End If
        Next Yacheyka
        
        CountByColor = Result
    End Function
    ```
4.  Закройте редактор. Сохраните файл как **.xlsm** (книга с поддержкой макросов).
5.  Используйте формулу в ячейке:
    
```excel
    =CountByColor(A1:A20; B1)
    ```
    Где `A1:A20` — диапазон проверки, а `B1` — ячейка с нужным цветом заливки (образец).

Важно: Функции на базе VBA не обновляются автоматически при изменении цвета ячейки. Чтобы пересчитать результат, нажмите F9 (пересчет книги) или дважды кликните по ячейке с формулой и нажмите Enter.

Способ 2: Фильтр по цвету (без макросов)

Если нельзя использовать макросы:

  1. Выделите шапку таблицы и включите фильтр (Данные > Фильтр или Ctrl+Shift+L).
  2. Откройте меню фильтра в нужном столбце -> Фильтр по цвету.
  3. Выберите нужный цвет.
  4. В любой свободной ячейке введите:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103; A2:A100)
    ```
    Аргумент `103` означает подсчет непустых ячеек (`COUNTA`) только среди видимых (отфильтрованных) строк.

## Работа с диапазонами: сумма и количество

Для числовых диапазонов используются агрегирующие функции. Они работают мгновенно и не требуют макросов.

### Суммирование значений
*   **Простая сумма:** `=СУММ(A1:A10)` складывает все числа. Текст и пустые ячейки игнорируются.
*   **Сумма по условию:** `=СУММЕСЛИ(A1:A10; ">100")` просуммирует только те значения, которые больше 100.
*   **Сумма по цвету (через VBA):** Аналогично подсчету, создайте функцию `SumByColor`:
    
```vba
    Function SumByColor(Diapazon As Range, Obrazec As Range) As Double
        Dim Yacheyka As Range
        Dim ColorIndex As Long
        Dim Result As Double
        ColorIndex = Obrazec.Interior.Color
        For Each Yacheyka In Diapazon
            If Yacheyka.Interior.Color = ColorIndex Then
                If IsNumeric(Yacheyka.Value) Then Result = Result + Yacheyka.Value
            End If
        Next Yacheyka
        SumByColor = Result
    End Function
    ```

### Подсчет количества ячеек
Разные функции считают разные типы данных:

<div class="table-container"><table style="border-collapse: collapse; width: 100%; margin: 16px 0;"><thead><tr><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Задача</th><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Формула</th><th style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; background: #f9fafb; font-weight: 600;">Что считает</th></tr></thead><tbody><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Все непустые</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><code style="background-color: rgba(0,0,0,0.05); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em;">=СЧЁТЗ(A1:A10)</code></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Текст, числа, даты, ошибки</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Только числа</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><code style="background-color: rgba(0,0,0,0.05); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em;">=СЧЁТ(A1:A10)</code></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Числовые значения и даты</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">По условию</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><code style="background-color: rgba(0,0,0,0.05); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em;">=СЧЁТЕСЛИ(A1:A10; &quot;Да&quot;)</code></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Ячейки, равные &quot;Да&quot;</td></tr><tr><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Пустые ячейки</td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;"><code style="background-color: rgba(0,0,0,0.05); padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em;">=СЧЁТПУСТОТЫ(A1:A10)</code></td><td style="border: 1px solid #e5e7eb; padding: 8px; text-align: left; vertical-align: top;">Полностью пустые ячейки</td></tr></tbody></table></div>


Для сложных условий (например, "продажи > 100" И "менеджер Иванов") используйте **СЧЁТЕСЛИМН**:

```excel
=СЧЁТЕСЛИМН(A1:A10; ">100"; B1:B10; "Иванов")

Частые ошибки при подсчете

  1. Формула показывает 0 вместо суммы. Проверьте, не сохранены ли числа как текст (зеленый треугольник в углу ячейки). Преобразуйте их в числа через «Преобразовать в число».
  2. ДЛСТР считает лишние пробелы. Часто в импортированных данных есть скрытые пробелы в конце. Используйте функцию =СЖПРОБЕЛЫ() перед подсчетом длины.
  3. Макрос не работает. Убедитесь, что файл сохранен в формате .xlsm. В обычных .xlsx макросы удаляются при сохранении.
  4. Неверный подсчет слов. Если между словами несколько пробелов, простая формула ошибется. Всегда применяйте СЖПРОБЕЛЫ внутри формулы подсчета слов.

FAQ

Можно ли посчитать цвет шрифта, а не фона? Да, в коде VBA замените Interior.Color на Font.Color. Логика работы останется той же.

Почему СУММ не видит числа? Чаще всего числа импортированы из другой системы как текст. Выделите столбец, перейдите в «Данные» -> «Текст по столбцам» и нажмите «Готово». Это принудительно преобразует текст в числа.

Как обновить результат функции цвета автоматически? Стандартными средствами Excel — никак, так как изменение цвета не является событием для пересчета формул. Единственный вариант — добавить в код макроса событие Worksheet_SelectionChange, но это может замедлить работу файла. Проще привыкнуть нажимать F9.

Работают ли эти формулы в Excel Онлайн? Функции ДЛСТР, СУММ, СЧЁТ работают везде. Макросы (VBA) и пользовательские функции не работают в браузерной версии Excel. Там доступен только метод с фильтрацией.