Как посчитать количество цифр в ячейке Excel: формулы для чисел, текста и дробей

Задача подсчёта цифр в ячейках Microsoft Excel возникает чаще, чем кажется: это может быть анализ номеров документов, проверка корректности введённых данных или подготовка отчётов с числовыми кодами. В отличие от стандартной функции ДЛСТР(), которая считает все символы, для подсчёта только цифр требуются специальные приёмы — от простых формул до комбинаций функций.

Многие пользователи ошибочно пытаются использовать ПОИСК() или НАЙТИ() для этой задачи, но эти функции возвращают позицию символа, а не его количество. Другие ограничиваются ручным подсчётом, что неэффективно при работе с большими массивами данных. На самом деле в Excel есть как минимум 5 способов автоматизировать этот процесс — от универсальных формул до макросов для сложных случаев.

📊 Как часто вам нужно считать цифры в Excel?
Ежедневно
Раз в неделю
Редко, но методично
Первый раз столкнулся
Не знаю, зачем это нужно

1. Подсчёт цифр в числовых ячейках (без текста)

Если ячейка содержит только число (например, 12345 или 987,65), самый простой способ — преобразовать его в текст и удалить все нецифровые символы. Для этого подойдёт формула:

=ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"0");",";"");" ";""))

Разберём её по шагам:

  • 🔢 ТЕКСТ(A1;"0") — преобразует число в текстовый формат без десятичных знаков (если они есть).
  • 🔍 ПОДСТАВИТЬ(...;",";"") — удаляет запятые (разделители тысяч или десятичные знаки).
  • 📝 ПОДСТАВИТЬ(...;" ";"") — убирает пробелы (на случай, если число отформатировано с разделителями разрядов).
  • 📏 ДЛСТР() — считает количество оставшихся символов (только цифр).

Пример: для ячейки с значением 1 234,56 формула вернёт 6 (цифры 1, 2, 3, 4, 5, 6).

⚠️ Внимание: Эта формула не работает с отрицательными числами! Для них сначала удалите знак «минус» с помощью ПОДСТАВИТЬ(A1;"-";"").

2. Универсальная формула для текста и чисел

Если ячейка содержит смесь текста и цифр (например, "Договор №123-АБВ/24"), потребуется более сложный подход. Здесь поможет формула массива:

=СУММПРОИЗВ(--(ЗНАЧЕН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:10"));1))+0))

Как она работает:

  1. Функция ПСТР() извлекает каждый символ ячейки по очереди (от 1 до 10 символов).
  2. ЗНАЧЕН() пытается преобразовать символ в число. Если это цифра — получится число, если нет — ошибка.
  3. +0 преобразует ошибки в 0, а числа оставляет как есть.
  4. -- превращает логические значения в 1 (если цифра) или 0 (если не цифра).
  5. СУММПРОИЗВ() суммирует все единицы, давая итоговое количество цифр.

Важно: это формула массива. В старых версиях Excel (2019 и ранее) её нужно вводить с помощью Ctrl+Shift+Enter. В Excel 365 или 2021 она работает как обычная.

Исходная ячейкаФормулаРезультат
"Телефон: 8(912)345-67-89"=СУММПРОИЗВ(--(ЗНАЧЕН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1))+0))10
"Артикул: AB-123-CD"=СУММПРОИЗВ(--(ЗНАЧЕН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:15"));1))+0))3
123,45=СУММПРОИЗВ(--(ЗНАЧЕН(ПСТР(A1;СТРОКА(ДВССЫЛ("1:6"));1))+0))5
⚠️ Внимание: Если в ячейке есть буквы с диакритическими знаками (например, é, ü, ñ), формула может дать сбой. В этом случае предварительно очистите текст функцией СЖПРОБЕЛЫ().

3. Подсчёт цифр с учётом дробных чисел

Для дробных чисел (например, 123.456) предыдущие методы могут не сработать из-за точки или запятой. Решение — замена разделителя на пустую строку и подсчёт оставшихся символов:

=ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"0,00");",";"");".";""))

Пояснения:

  • 🔄 ТЕКСТ(A1;"0,00") — форматирует число с двумя знаками после запятой (даже если их нет).
  • 🗑️ ПОДСТАВИТЬ(...;",";"") — удаляет запятую (разделитель дробной части в русскоязычном Excel).
  • 🗑️ ПОДСТАВИТЬ(...;".";"") — удаляет точку (на случай англоязычной версии).

Пример: для ячейки 123.456 формула вернёт 6 (цифры 1, 2, 3, 4, 5, 6).

Почему не работает формула для отрицательных чисел?

Если в ячейке отрицательное число (например, -123.45), знак «минус» тоже считается символом. Чтобы его игнорировать, добавьте в начало формулы ПОДСТАВИТЬ(A1;"-";"").

4. Альтернативный метод с функцией ЛЕВСИМВ() и циклом

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

=ЕСЛИ(И(КОДСИМВ(ЛЕВСИМВ(A1))>=48;КОДСИМВ(ЛЕВСИМВ(A1))<=57);1;0)

Затем протяните её вниз на количество символов в ячейке (например, если в A1 10 символов, протяните на 10 строк). В конце просуммируйте результаты:

=СУММ(B1:B10)

Как это работает:

  • 🔤 ЛЕВСИМВ(A1) — берёт первый символ ячейки.
  • 📊 КОДСИМВ() — возвращает код символа в таблице ASCII. Цифры имеют коды от 48 (0) до 57 (9).
  • 🔄 ЕСЛИ() — проверяет, попадает ли код в этот диапазон, и возвращает 1 (если цифра) или 0.
⚠️ Внимание: Этот метод требует ручного протягивания формулы и создания вспомогательного столбца. Он неудобен для больших таблиц, но зато наглядно показывает, какие именно символы являются цифрами.

Убедиться, что ячейка не содержит скрытых символов (пробелов, табуляций)

Проверить формат ячейки (текстовый или числовой)

Определить максимальную длину строки для формул массива

Учесть региональные настройки (разделители чисел)

-->

5. Подсчёт цифр с помощью Power Query (для больших данных)

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

  1. Выделите диапазон данных и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец с данными, кликните правой кнопкой и выберите Преобразовать → Заменить значения.
  3. Удалите все нецифровые символы с помощью регулярного выражения:
    [^0-9]

    (замените их на пустую строку).

  4. Добавьте новый столбец с функцией Длина текста (вкладка Добавить столбец → Столбец на основе примера).
  5. Сохраните изменения и загрузите данные обратно в Excel.

Этот метод в 10–100 раз быстрее формул при обработке более 10 000 строк, но требует базовых знаний Power Query.

ПреимуществаНедостатки
Обрабатывает миллионы строк без тормозовНужно изучать синтаксис Power Query
Можно сохранять шаги и повторять ихНе подходит для разовых задач
Учитывает региональные настройки автоматическиТребует Excel 2016 или новее

6. Автоматизация с помощью макроса VBA

Для самых сложных случаев (например, подсчёт цифр в выделенном диапазоне с учётом условий) можно написать макрос. Откройте редактор VBA (Alt + F11) и вставьте следующий код:

Function CountDigits(rng As Range) As Long

Dim cell As Range

Dim char As String

Dim digitCount As Long

Dim i As Integer

For Each cell In rng

For i = 1 To Len(cell.Value)

char = Mid(cell.Value, i, 1)

If IsNumeric(char) Then

digitCount = digitCount + 1

End If

Next i

Next cell

CountDigits = digitCount

End Function

Теперь в Excel можно использовать эту функцию как обычную формулу:

=CountDigits(A1:A10)

Макрос подсчитает все цифры во всех ячейках диапазона A1:A10. Преимущества этого метода:

  • 🔄 Работает с любыми данными (текст, числа, ошибки).
  • 📊 Можно модифицировать под конкретные задачи (например, игнорировать ноли или учитывать только чётные цифры).
  • ⚡ Быстрее формул массива при обработке больших диапазонов.
⚠️ Внимание: Макросы блокируются по умолчанию в Excel из-за настроек безопасности. Чтобы их запустить, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

Сравнение методов: какой выбрать?

Выбор способа зависит от задачи:

МетодЛучше всего дляСложностьОграничения
Формула для чиселЧистые числовые данныеНе работает с текстом
Универсальная формула массиваТекст с цифрами⭐⭐⭐Требует Ctrl+Shift+Enter в старых версиях
ЛЕВСИМВ() + вспомогательный столбецНаглядный анализ⭐⭐Нужно протягивать формулу
Power QueryБольшие данные (10 000+ строк)⭐⭐⭐⭐Требует Excel 2016+
VBA-макросСложные условия или автоматизация⭐⭐⭐⭐⭐Нужны права на выполнение макросов

Для большинства пользователей оптимальным решением будет универсальная формула массива (раздел 2). Она работает в любых версиях Excel и справляется с 90% задач.

FAQ: Частые вопросы

Можно ли посчитать только уникальные цифры в ячейке?

Да, для этого используйте комбинацию функций СЦЕПИТЬ(), ПОДСТАВИТЬ() и ДЛСТР() с удалением повторяющихся символов. Например:

=ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(..., "0", ""), "0", ""))

Но проще сделать это через Power Query с группировкой по символам.

Почему формула возвращает #ЗНАЧ! для пустых ячеек?

Это происходит потому, что функции ЛЕВСИМВ() или ПСТР() не могут работать с пустыми ячейками. Оберните формулу в ЕСЛИОШИБКА():

=ЕСЛИОШИБКА(ваша_формула; 0)
Как посчитать цифры в диапазоне ячеек?

Используйте VBA-макрос из раздела 6 или создайте вспомогательный столбец с формулой для каждой ячейки, а затем просуммируйте его. В Power Query это делается автоматически при группировке.

Работает ли это в Google Sheets?

Да, все формулы (кроме VBA) работают и в Google Таблицах. Для формул массива используйте ARRAYFORMULA():

=ARRAYFORMULA(SUM(--(VALUE(MID(A1;ROW(1:10);1))+0)))
Можно ли посчитать цифры в ячейке с учётом форматирования (например, скрытые символы)?

Нет, формулы работают только с видимым содержимым ячейки. Скрытые символы (например, добавленные через условное форматирование) не учитываются. Чтобы их увидеть, включите отображение всех символов через Главная → Редактирование → Заменить (в поле "Найти" введите .*, чтобы выделить все символы).