Как убрать знаки после запятой в Excel: от форматирования до VBA

При импорте данных из внешних источников или после выполнения расчётов в Microsoft Excel числа часто отображаются с лишними десятичными знаками — например, 15.00000 вместо 15 или 3.142857142857143 вместо 3.14. Даже если визуально ячейка показывает 2,5, реальное значение может храниться как 2.500000000000001 из-за особенностей вычислений с плавающей запятой. Это создаёт проблемы при дальнейшей обработке данных, сравнении чисел или экспорте в другие системы.

В 80% случаев достаточно изменить формат ячеек, но иногда требуется округление или даже полное усечение дробной части. Ниже разберём все методы — от простейшего форматирования до автоматизации через VBA, — а также объясним, почему иногда после удаления знаков числа всё равно отображаются некорректно.

1. Быстрое решение: изменение формата ячеек

Если лишние знаки после запятой — только визуальная проблема (например, 12.34000 отображается как 12.340, но реальное значение — 12.34), достаточно поменять формат:

  1. Выделите диапазон ячеек (например, A1:A100).
  2. Нажмите правой кнопкой → Формат ячеек (или Ctrl+1).
  3. Вкладка Число → выберите Числовой или Денежный.
  4. Укажите количество десятичных знаков: 0 для целых чисел или 2 для двух знаков.

⚠️ Внимание: Этот метод не изменяет само значение в ячейке, а только маскирует его отображение. Если скопировать такое число в текстовый редактор или использовать в формулах, оригинальная дробная часть сохранится.

Исходное значение Формат "Общий" Формат "Числовой (0 знаков)" Формат "Денежный (2 знака)"
15.456789 15.456789 15 15.46 р.
3.000000 3 3 3.00 р.
0.999999 0.999999 1 (округляется!) 1.00 р.

2. Округление чисел с сохранением дробной части

Если нужно не просто скрыть знаки, а округлить число до целого или заданного количества десятичных, используйте функции:

  • 🔹 =ОКРУГЛ(число; количество_знаков) — стандартное округление (=ОКРУГЛ(3.1415; 2)3.14).
  • 🔹 =ОКРУГЛВВЕРХ() / =ОКРУГЛВНИЗ() — округление в большую или меньшую сторону (=ОКРУГЛВВЕРХ(3.1; 0)4).
  • 🔹 =ЦЕЛОЕ(число) — отбрасывает дробную часть (=ЦЕЛОЕ(5.99)5).
  • 🔹 =ОКРУГЛТ(число; точность) — округление до кратного числа (=ОКРУГЛТ(17; 5)15).

Пример для массового округления:

  1. В пустой столбец (например, B1) введите формулу =ОКРУГЛ(A1; 0).
  2. Растяните формулу на весь диапазон.
  3. Скопируйте результаты (Ctrl+C) → Специальная вставкаЗначения.
Почему ОКРУГЛ и ЦЕЛОЕ дают разные результаты?

Функция ОКРУГЛ follows стандартным правилам округления (5 и выше — вверх, ниже 5 — вниз), тогда как ЦЕЛОЕ просто отсекает дробную часть, не анализируя её значение. Например:

  • =ОКРУГЛ(2.6; 0)3 (округление вверх).
  • =ЦЕЛОЕ(2.6)2 (дробная часть отброшена).
  • =ОКРУГЛ(-2.6; 0)-3 (округление по модулю).
  • =ЦЕЛОЕ(-2.6)-3 (особенность работы с отрицательными числами!).

3. Усечение дробной части без округления

Если требуется полностью удалить дробную часть (например, для конвертации 123.99 в 123 без округления до 124), используйте:

  • 🔹 =ЦЕЛОЕ(число) — для положительных чисел.
  • 🔹 =ОТБР(число; количество_знаков) — усечение до заданного количества знаков (=ОТБР(3.149; 1)3.1).
  • 🔹 =ТРУНЦ(число) — аналог ОТБР в английской версии Excel.

⚠️ Внимание: Для отрицательных чисел ЦЕЛОЕ работает иначе — =ЦЕЛОЕ(-3.7) вернёт -4, а не -3. Чтобы усечь отрицательное число к нулю, используйте формулу:

=ЕСЛИ(число>0; ЦЕЛОЕ(число); -ЦЕЛОЕ(-число))

Изменяю формат ячеек|Использую функцию ОКРУГЛ|Применяю ЦЕЛОЕ/ОТБР|Пишу макрос VBA-->

4. Удаление знаков после запятой через "Текст по столбцам"

Если числа хранятся как текст (например, после импорта из CSV), стандартные функции могут не сработать. В этом случае:

  1. Выделите диапазон с данными.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Снимите все галочки в разделе РазделителиГотово.

Excel преобразует текстовые числа в числовой формат, после чего можно применить любой метод из предыдущих разделов. Если после преобразования появляются значки ошибки (например, #ЗНАЧ!), проверьте:

  • 🔹 Наличие невидимых символов (пробелов, табуляций) — используйте =ПЕЧСИМВ(A1) для диагностики.
  • 🔹 Локальные настройки (разделитель целой и дробной части должен совпадать с системными настройками Windows).

5. Автоматизация: макрос VBA для массового удаления знаков

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

Sub УдалитьЗнакиПослеЗапятой()

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

If IsNumeric(cell.Value) Then

cell.Value = Int(cell.Value)

End If

Next cell

End Sub

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

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

Выделил диапазон с данными|Проверял, что в ячейках только числа (без текста)|Сохранил книгу в формате .xlsm (с поддержкой макросов)|Отключил защиту листа (если есть)-->

⚠️ Внимание: Макрос Int работает как функция ЦЕЛОЕ — для отрицательных чисел он округляет в сторону уменьшения (-3.7-4). Чтобы усечь к нулю, замените Int на:

cell.Value = Sgn(cell.Value) * Int(Abs(cell.Value))

6. Особенности работы с датами и временем

В Excel даты и время хранятся как числа (например, 45000.5 = дата + 12 часов). Если применить к ним функции ОКРУГЛ или ЦЕЛОЕ, результаты будут неожиданными:

  • 🔹 =ЦЕЛОЕ(45000.5)45000 (дата без времени).
  • 🔹 =ОКРУГЛ(45000.5; 0)45001 (дата + 1 день!).

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

  • 🔹 =ЦЕЛОЕ(A1) — оставляет только дату.
  • 🔹 =ДАТАГОД(A1)&"-"&ТЕКСТ(МЕСЯЦ(A1);"00")&"-"&ТЕКСТ(ДЕНЬ(A1);"00") — преобразует в текстовый формат ГГГГ-ММ-ДД.

7. Почему после удаления знаков числа отображаются некорректно?

Частые причины:

Симптом Причина Решение
Числа отображаются как 1.23E+10 Формат ячейки Экспоненциальный Измените формат на Числовой
После округления виден #ЗНАЧ! Ячейка содержит текст, а не число Используйте Текст по столбцам или =ЗНАЧЕН(A1)
Целые числа показываются как 15.0 Включён параметр Отображать нули Отключите в Файл → Параметры → Дополнительно
После копирования появляются лишние знаки В буфере обмена сохранён оригинальный формат Используйте Специальная вставка → Значения

🔍 Диагностический тест: Чтобы проверить реальное значение в ячейке, используйте формулу =ТОЧНО(A1; ЦЕЛОЕ(A1)). Если результат ЛОЖЬ, в ячейке хранится дробное число, даже если оно не видно.

Частые вопросы (FAQ)

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

Да. Используйте формулу:

=ЕСЛИ(A1<0; ЦЕЛОЕ(A1); A1)

Для усечения отрицательных чисел к нулю (например, -3.7-3):

=ЕСЛИ(A1<0; -ЦЕЛОЕ(-A1); A1)
Почему после применения ЦЕЛОЕ в ячейке остаётся #ИМЯ??

Ошибка #ИМЯ? появляется, если:

  • Функция введена с опечаткой (например, ЦЕЛОЙ вместо ЦЕЛОЕ).
  • В региональных настройках Excel используется английская версия функции (INT вместо ЦЕЛОЕ).
  • Ячейка содержит текст, а не число (проверьте с помощью =ТИП(A1)).

Решение: используйте =ЕСЛИОШИБКА(ЦЕЛОЕ(A1); A1) для игнорирования ошибок.

Как убрать знаки после запятой при экспорте в CSV?

При экспорте Excel сохраняет реальные значения ячеек, а не отображаемые. Чтобы в CSV попали целые числа:

  1. Создайте копию данных с формулой =ЦЕЛОЕ(A1).
  2. Скопируйте результаты как значения (Специальная вставка).
  3. Экспортируйте скопированные данные.

Или используйте VBA для автоматического округления при сохранении:

ActiveWorkbook.SaveAs "файл.csv", xlCSV, CreateBackup:=False, Local:=True
Можно ли настроить Excel, чтобы по умолчанию не отображались знаки после запятой?

Да. Создайте стиль ячейки:

  1. Главная → Стили → Создать стиль ячейки.
  2. Укажите формат Числовой с 0 десятичных знаков.
  3. Примените стиль ко всему листу или книге.

Для новых книг настройте шаблон по умолчанию:

  1. Создайте пустую книгу с нужными настройками.
  2. Сохраните как Книга.xltx в папке XLSTART (обычно C:\Users\ИмяПользователя\AppData\Roaming\Microsoft\Excel\XLSTART).
Как удалить знаки после запятой в Google Sheets?

В Google Таблицах используйте те же функции, но с английским синтаксисом:

  • =ROUND(A1, 0) — округление.
  • =INT(A1) — усечение.
  • =TRUNC(A1, 0) — усечение до целого.

Для массового изменения формата:

  1. Выделите диапазон.
  2. Формат → Числа → Автоматический или укажите количество десятичных знаков.