При импорте данных из внешних источников или после выполнения расчётов в Microsoft Excel числа часто отображаются с лишними десятичными знаками — например, 15.00000 вместо 15 или 3.142857142857143 вместо 3.14. Даже если визуально ячейка показывает 2,5, реальное значение может храниться как 2.500000000000001 из-за особенностей вычислений с плавающей запятой. Это создаёт проблемы при дальнейшей обработке данных, сравнении чисел или экспорте в другие системы.
В 80% случаев достаточно изменить формат ячеек, но иногда требуется округление или даже полное усечение дробной части. Ниже разберём все методы — от простейшего форматирования до автоматизации через VBA, — а также объясним, почему иногда после удаления знаков числа всё равно отображаются некорректно.
1. Быстрое решение: изменение формата ячеек
Если лишние знаки после запятой — только визуальная проблема (например, 12.34000 отображается как 12.340, но реальное значение — 12.34), достаточно поменять формат:
- Выделите диапазон ячеек (например,
A1:A100). - Нажмите правой кнопкой →
Формат ячеек(илиCtrl+1). - Вкладка
Число→ выберитеЧисловойилиДенежный. - Укажите количество десятичных знаков:
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).
Пример для массового округления:
- В пустой столбец (например,
B1) введите формулу=ОКРУГЛ(A1; 0). - Растяните формулу на весь диапазон.
- Скопируйте результаты (
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), стандартные функции могут не сработать. В этом случае:
- Выделите диапазон с данными.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями→Далее. - Снимите все галочки в разделе
Разделители→Готово.
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
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон в 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 попали целые числа:
- Создайте копию данных с формулой
=ЦЕЛОЕ(A1). - Скопируйте результаты как значения (
Специальная вставка). - Экспортируйте скопированные данные.
Или используйте VBA для автоматического округления при сохранении:
ActiveWorkbook.SaveAs "файл.csv", xlCSV, CreateBackup:=False, Local:=True
Можно ли настроить Excel, чтобы по умолчанию не отображались знаки после запятой?
Да. Создайте стиль ячейки:
Главная → Стили → Создать стиль ячейки.- Укажите формат
Числовойс0десятичных знаков. - Примените стиль ко всему листу или книге.
Для новых книг настройте шаблон по умолчанию:
- Создайте пустую книгу с нужными настройками.
- Сохраните как
Книга.xltxв папкеXLSTART(обычноC:\Users\ИмяПользователя\AppData\Roaming\Microsoft\Excel\XLSTART).
Как удалить знаки после запятой в Google Sheets?
В Google Таблицах используйте те же функции, но с английским синтаксисом:
=ROUND(A1, 0)— округление.=INT(A1)— усечение.=TRUNC(A1, 0)— усечение до целого.
Для массового изменения формата:
- Выделите диапазон.
Формат → Числа → Автоматическийили укажите количество десятичных знаков.