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

Почему стандартный подсчёт не всегда работает

Вы когда-нибудь сталкивались с ситуацией, когда Excel упорно не хочет правильно считать целые числа в вашей таблице? Например, в колонке с данными о количестве товаров (15 шт, 20 шт, 3.5 кг) функция =СЧЁТ() выдаёт результат, который явно не совпадает с реальным количеством целых значений? Это типичная проблема, с которой сталкиваются и новички, и опытные пользователи.

Дело в том, что Excel воспринимает данные по-разному в зависимости от их формата и типа хранения. Число 5 в ячейке с форматом Общий и число 5,0 в ячейке с форматом Дробный — это два разных сценария для функций подсчёта. А если к этому добавить текстовые значения вроде "10 единиц" или даты, которые Excel внутренне хранит как числа, то задача усложняется в разы.

В этой статье мы разберём 7 надёжных способов подсчёта целых чисел в Excel, включая малоизвестные приёмы для работы с "упрямыми" данными. Вы узнаете, как обойти ловушки форматирования, как отделить целые числа от дробных, и почему иногда простая функция =СЧЁТЗ() даёт сбой.

Способ 1: Базовая функция СЧЁТ для чистых числовых данных

Если ваш диапазон содержит только целые числа без текстовых примесей (например, 1, 2, 3, ..., 100), то простейший способ — использовать функцию =СЧЁТ(). Она подсчитывает количество ячеек с числовыми значениями, игнорируя текст, пустые ячейки и ошибки.

Пример формулы для диапазона A1:A100:

=СЧЁТ(A1:A100)
  • ✅ Подходит для "идеальных" данных без дробей и текста
  • ✅ Быстро работает с большими диапазонами
  • ❌ Не различает целые и дробные числа (считает и те, и другие)
  • ❌ Игнорирует числа, хранящиеся как текст (например, после импорта из CSV)

Чтобы проверить, нет ли в ваших данных "спрятанных" дробных чисел, используйте условное форматирование:

  1. Выделите диапазон
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Больше...
  3. В поле "Форматировать ячейки, которые" выберите Значение ячейки → больше → 0,999 и меньше → -0,999 (это выделит все нецелые числа)

Способ 2: Функция СЧЁТЕСЛИ для целых чисел с условием

Когда нужно подсчитать только целые числа, исключив дробные, на помощь приходит =СЧЁТЕСЛИ() с математическим условием. Логика проста: целое число при делении на 1 даёт остаток 0. Поэтому формула будет такой:

=СЧЁТЕСЛИ(A1:A100; "=ЦЕЛОЕ(A1)")

Но здесь есть подвох: СЧЁТЕСЛИ не поддерживает массивы в условии. Чтобы обойти это ограничение, используйте формулу массива (в новых версиях Excel она вводится автоматически):

=СЧЁТЕСЛИ(A1:A100; ">="&МИН(A1:A100)) - СЧЁТЕСЛИ(A1:A100; "<>"&ОКРУГЛ(A1:A100; 0))

Более надёжный вариант — комбинация СУММПРОИЗВ и ЦЕЛОЕ:

=СУММПРОИЗВ(--(A1:A100=ОКРУГЛ(A1:A100;0)))
Почему не работает =СЧЁТЕСЛИ(диапазон; "=ЦЕЛОЕ(*)")

Функция ЦЕЛОЕ в условии СЧЁТЕСЛИ не обрабатывается как формула — Excel воспринимает её как текст. Поэтому нужно использовать обходные пути с СУММПРОИЗВ или ОКРУГЛ.

Формула Подходит для Ограничения
=СЧЁТЕСЛИ(A1:A100; ">999") Целых чисел больше 1000 Не отличает 1000 от 1000,5
=СУММПРОИЗВ(--(ЦЕЛОЕ(A1:A100)=A1:A100)) Точного подсчёта целых чисел Требует ввода как формулы массива (Ctrl+Shift+Enter в старых версиях)
=СЧЁТ(A1:A100)-СЧЁТЕСЛИ(A1:A100; "<>ОКРУГЛ(A1:A100;0)") Приблизительной оценки Может давать сбои при отрицательных числах

Способ 3: Фильтрация текстовых чисел (когда Excel "не видит" числа)

Частая проблема при импорте данных из CSV или баз данных: числа хранятся как текст (например, '15 вместо 15). Стандартные функции их игнорируют. Чтобы подсчитать такие "текстовые числа", используйте комбинацию ЕЧИСЛО и ЗНАЧЕН:

=СУММПРОИЗВ(--(ЕЧИСЛО(ЗНАЧЕН(A1:A100))); --(ЗНАЧЕН(A1:A100)=ОКРУГЛ(ЗНАЧЕН(A1:A100);0)))

Альтернативный вариант с функцией ПРОВЕРКА.ОШИБОК:

=СЧЁТЕСЛИ(A1:A100; ">="&МИН(A1:A100)) - СЧЁТЕСЛИ(A1:A100; "<>"&ОКРУГЛ(A1:A100;0)) - СЧИТАТЬПУСТОТЫ(A1:A100)

Выделите диапазон и посмотрите на выравнивание: текстовые значения выровнены по левому краю, числа — по правому

Используйте функцию =ЕТЕКСТ(A1) для проверки отдельных ячеек

Примените Текст по столбцам (Данные → Текст по столбцам) с форматом "Общий" для конвертации

Используйте =ЗНАЧЕН() для принудительного преобразования текста в число

-->

Внимание! Если после преобразования ЗНАЧЕН() вы получаете ошибку #ЗНАЧ!, это значит, что в ячейке есть не только цифры (например, "15 кг" или "~20"). В таком случае потребуется предварительная очистка данных с помощью ПОИСК/ПОДСТАВИТЬ.

Способ 4: Подсчёт целых чисел в диапазоне (с учётом границ)

Допустим, вам нужно посчитать целые числа от 10 до 50 включительно, игнорируя дробные значения. Здесь поможет комбинация СЧЁТЕСЛИМН с округлением:

=СЧЁТЕСЛИМН(A1:A100; ">="&10; "<="&50) - СЧЁТЕСЛИМН(A1:A100; ">="&10; "<="&50; "<>"&ОКРУГЛ(A1:A100;0))

Для более точного контроля используйте формулу массива:

=СУММ(--(A1:A100>=10); --(A1:A100<=50); --(A1:A100=ОКРУГЛ(A1:A100;0)))

Если вам нужно посчитать целые числа строго между двумя значениями (например, от 10 до 50, но не включая 10 и 50), модифицируйте условие:

=СУММПРОИЗВ(--(A1:A100>10); --(A1:A100<50); --(ЦЕЛОЕ(A1:A100)=A1:A100))

Целые числа (количество товаров, люди и т.п.)

Дробные числа (цены, вес, проценты)

Даты и время

Текстовые значения

Другое-->

Способ 5: Работа с датами (когда Excel путает числа и даты)

Excel хранит даты как числа (например, 1 января 2023 = 44927). Если в вашем диапазоне смешаны настоящие числа и даты, стандартные функции подсчёта дадут неверный результат. Чтобы посчитать только целые числа, исключив даты, используйте:

=СУММПРОИЗВ(

--(ЕЧИСЛО(A1:A100)),

--(A1:A100=ОКРУГЛ(A1:A100;0)),

--(ИЛИ(A1:A100<ДАТА(1900;1;1); A1:A100>ДАТА(2100;12;31)))

)

Объяснение логики:

  1. ЕЧИСЛО — проверяет, что ячейка содержит число (исключает текст)
  2. A1:A100=ОКРУГЛ(A1:A100;0) — проверяет, что число целое
  3. ИЛИ(...) — исключает значения, попадающие в диапазон возможных дат Excel (с 1900 по 2100 год)

Внимание! Если в вашей таблице используются даты до 1900 года (например, исторические данные), этот метод не сработает — Excel не поддерживает даты раньше 1 января 1900 года. В таком случае придётся использовать дополнительную проверку на формат ячейки с помощью VBA или Power Query.

Способ 6: Продвинутый подсчёт с Power Query

Для больших наборов данных (тысячи строк) или сложных условий удобнее использовать Power Query — инструмент ETL (Extract-Transform-Load), встроенный в Excel 2016+. Он позволяет:

  • 🔍 Автоматически определять типы данных
  • 🧹 Очищать "грязные" данные (удалять символы, преобразовывать форматы)
  • 📊 Фильтровать целые числа с учётом нескольких условий

Пошаговая инструкция:

  1. Выделите ваш диапазон и перейдите на вкладку Данные → Из таблицы/диапазона (или Получить данные → Из таблицы/диапазона)
  2. В открывшемся редакторе Power Query выберите колонку с числами → Преобразовать → Тип данных → Целое число
  3. Добавьте фильтр: Главная → Фильтр → Числовые фильтры → Равно... и введите 0 в поле "Остаток от деления на 1"
  4. Нажмите Закрыть и загрузить — Excel создаст новую таблицу только с целыми числами, которые можно подсчитать функцией =СЧЁТ()

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

  • ✅ Обрабатывает миллионы строк без замедления
  • ✅ Сохраняет шаги преобразования для повторного использования
  • ✅ Автоматически обновляет результаты при изменении исходных данных

Способ 7: Автоматизация с помощью VBA (для повторяющихся задач)

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

Function COUNT_INTEGERS(rng As Range) As Long

Dim cell As Range

Dim count As Long

count = 0

For Each cell In rng

If IsNumeric(cell.Value) Then

If cell.Value = Int(cell.Value) Then

count = count + 1

End If

End If

Next cell

COUNT_INTEGERS = count

End Function

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

=COUNT_INTEGERS(A1:A100)

Расширенная версия макроса, которая игнорирует даты и текстовые числа:

Function COUNT_TRUE_INTEGERS(rng As Range) As Long

Dim cell As Range

Dim count As Long

count = 0

For Each cell In rng

If VarType(cell.Value) = vbDouble Then 'Проверяем, что это число (не текст и не дата)

If cell.Value = Int(cell.Value) And _

(cell.Value < 1 Or cell.Value > 2958465) Then 'Исключаем даты (1 = 01.01.1900, 2958465 = 31.12.9999)

count = count + 1

End If

End If

Next cell

COUNT_TRUE_INTEGERS = count

End Function

Внимание! Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, только если файлу доверяете.

FAQ: Частые вопросы о подсчёте целых чисел в Excel

Почему функция СЧЁТ считает даты как числа?

Excel хранит даты в виде последовательных чисел, где 1 = 1 января 1900 года, 2 = 2 января 1900 года и т.д. Поэтому функции вроде СЧЁТ или СУММ воспринимают даты как обычные числа. Чтобы исключить даты из подсчёта, используйте проверку диапазона (см. Способ 5).

Как подсчитать целые числа в фильтрованном диапазоне?

Если ваши данные отфильтрованы (например, с помощью автофильтра), стандартные функции вернут результат для всего диапазона, а не только для видимых ячеек. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2; A1:A100) - ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2; --(A1:A100<>ОКРУГЛ(A1:A100;0)))

Где 2 — это код функции СЧЁТ для промежуточных итогов.

Можно ли посчитать целые числа в сводной таблице?

Да, но для этого нужно:

  1. Добавить ваш диапазон в Источник данных сводной таблицы
  2. Создать вычисляемое поле с формулой =ЕСЛИ(ЦЕЛОЕ([Ваше_поле])=[Ваше_поле]; 1; 0)
  3. Добавить это поле в область Значения и установить для него операцию Сумма

Результат покажет количество целых чисел в исходных данных.

Как подсчитать уникальные целые числа?

Используйте комбинацию ЧАСТОТА и СУММПРОИЗВ:

=СУММ(--(ЧАСТОТА(ЕСЛИ(A1:A100=ОКРУГЛ(A1:A100;0); A1:A100); A1:A100)>0))

В Excel 365 и 2021 можно использовать более простую формулу:

=СЧЁТЕСЛИМН(УНИК(A1:A100); ">="&МИН(A1:A100); "<="&МАКС(A1:A100); "="&ОКРУГЛ(УНИК(A1:A100);0))
Почему моя формула возвращает #ЗНАЧ!?

Ошибка #ЗНАЧ! в формулах подсчёта целых чисел обычно возникает по трём причинам:

  1. Текст в числовых ячейках: Проверьте данные на наличие скрытых символов (например, пробелов) с помощью =ПРОБЕЛЫ(A1)=A1
  2. Ошибки в диапазоне: Используйте =ЕОШИБКА(A1) для выявления проблемных ячеек
  3. Несовместимые типы данных в формуле массива: Убедитесь, что все части формулы возвращают массивы одинакового размера

Для диагностики добавьте в формулу проверку ЕЧИСЛО или ЕТЕКСТ.