Работаете с финансовыми отчётами, инженерными расчётами или базой данных в Microsoft Excel, и нужно удалить десятичные знаки без округления? Обычное форматирование ячеек или функция ОКРУГЛ() здесь не помогут — они лишь скрывают лишние цифры или искажают исходные данные. В этой статье разберём 5 проверенных способов, как обрезать дробную часть числа в Excel, сохраняя целую без изменений.
Проблема в том, что Excel по умолчанию хранит числа с плавающей запятой, и простое изменение формата (например, на «Числовой» с 0 десятичных знаков) не удаляет дробную часть — она остаётся в памяти программы. Это критично для бухгалтерских вычислений, где копейки имеют значение, или для технических задач, где требуется точное усечение. Мы рассмотрим методы от простых формул до продвинутых инструментов вроде Power Query, чтобы вы выбрали оптимальный вариант для своей задачи.
Почему нельзя просто отформатировать ячейку
Многие пользователи пытаются решить проблему через меню Главная → Формат ячеек → Числовой, уменьшая количество десятичных знаков до нуля. Это не работает по двум причинам:
- 🔹 Данные не изменяются: Excel просто скрывает дробную часть при отображении, но сохраняет её для расчётов. Например, число
5,78после форматирования будет выглядеть как6, но в формулах использоваться как5,78. - 🔹 Округление вместо усечения: если включить опцию «Уменьшить разрядность», Excel округлит значение (например,
5,99станет6), а не обрежет дробную часть.
Проверить это легко: выделите ячейку с отформатированным числом и посмотрите на строку формул — там по-прежнему будет видна дробная часть. Для настоящего усечения нужны другие инструменты.
⚠️ Внимание: Если вы используете отформатированные ячейки в дальнейших расчётах (например, для суммирования), результат будет некорректным из-за скрытой дробной части. Всегда проверяйте реальные значения в строке формул!
Способ 1: Функция ОТБР() — простое усечение
Самый прямой метод — использовать функцию ОТБР() (или TRUNC в английской версии). Она обрезает дробную часть числа без округления, сохраняя только целую часть. Синтаксис:
=ОТБР(число; [число_разрядов])
Где:
- 📌
число— исходное значение (например,A1). - 📌
[число_разрядов]— количество знаков после запятой, которые нужно оставить (по умолчанию0, то есть обрезка до целого).
Примеры:
| Формула | Исходное число | Результат |
|---|---|---|
=ОТБР(5,78) |
5,78 |
5 |
=ОТБР(-3,99) |
-3,99 |
-3 |
=ОТБР(12,345; 1) |
12,345 |
12,3 |
Функция работает и с отрицательными числами, и с указанием количества знаков после запятой (например, ОТБР(12,345; 1) вернёт 12,3). Главный плюс — простота и скорость. Минус: результат формулы, а не значение, поэтому для дальнейшей работы может понадобиться Специальная вставка → Значения.
1. Введите в ячейку A1 число с дробной частью (например, 7,89)
2. В ячейке B1 введите формулу =ОТБР(A1)
3. Убедитесь, что результат — целое число без округления
4. Проверьте строку формул: там должно быть именно 7, а не 7,89-->
Способ 2: Функция ТЕКСТ() — преобразование в строку
Если вам нужно не только усечь дробную часть, но и преобразовать число в текстовый формат (например, для дальнейшего использования в отчётах), подойдёт функция ТЕКСТ(). Она позволяет задать формат отображения числа, включая обрезку десятичных знаков:
=ТЕКСТ(число; "формат")
Для усечения до целого используйте формат "0":
=ТЕКСТ(5,78; "0") → вернёт "5" (как текст)
Преимущества метода:
- 📄 Результат — текст, что удобно для конкатенации (объединения) с другими строками.
- 🎨 Гибкость: можно задавать любые форматы, например,
"0,0"для одного знака после запятой.
Недостатки:
- ⚠️ Результат — текст, а не число. Его нельзя использовать в математических формулах без дополнительного преобразования (например, через
ЗНАЧЕН()). - 🔢 Для больших массивов данных может замедлить работу книги.
Способ 3: Функция ЦЕЛОЕ() — альтернатива с нюансами
Функция ЦЕЛОЕ() (или INT) тоже обрезает дробную часть, но работает только для положительных чисел, округляя их вниз до ближайшего целого. Синтаксис:
=ЦЕЛОЕ(число)
Примеры:
- 🔢
=ЦЕЛОЕ(5,78)→5 - 🔢
=ЦЕЛОЕ(-3,2)→-4(а не-3!)
Как видно, для отрицательных чисел ЦЕЛОЕ() ведёт себя иначе, чем ОТБР(): она округляет в сторону меньшего целого, а не просто обрезает дробную часть. Это может быть критично для финансовых расчётов!
⚠️ Внимание: Никогда не используйтеЦЕЛОЕ()для усечения отрицательных чисел, если вам важна точность. Например, при обрезке-3,2функция вернёт-4, а не-3, как это сделал быОТБР().
Где уместно применять ЦЕЛОЕ():
- 📈 Для положительных чисел, когда нужно гарантированно получить целую часть (например, в статистике).
- 📊 В комбинации с другими функциями, где важно округление вниз (например, для расчёта минимальных значений).
Способ 4: Power Query — усечение для больших массивов
Если вам нужно обработать тысячи строк или регулярно обновлять данные, ручное применение формул неэффективно. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее, а также в Office 365). Он позволяет автоматизировать усечение чисел без округления.
Пошаговая инструкция:
- Выделите ваш диапазон данных и перейдите на вкладку
Данные → Из таблицы/диапазона(илиGet & Transform → From Table/Rangeв английской версии). - В открывшемся редакторе Power Query выделите столбец с числами.
- Перейдите на вкладку
Преобразовать(Transform) и выберитеОкругление → Усечение(Truncate). - Нажмите
Закрыть и загрузить(Close & Load), чтобы применить изменения.
Преимущества Power Query:
- ⚡ Автоматизация: один раз настроили — обновляйте данные в один клик.
- 📊 Масштабируемость: обрабатывает миллионы строк без замедления.
- 🔄 Нетривиальные преобразования: можно комбинировать с другими операциями (фильтрация, сортировка).
Минус: требует изучения интерфейса Power Query, что может показаться сложным для новичков. Однако для регулярной работы с большими данными этот метод оптимален по скорости и надёжности.
Обычные формулы|Power Query|Сводные таблицы|VBA-скрипты|Другой-->
Способ 5: VBA-макрос — для продвинутых пользователей
Если вам нужно усечь числа в выделенном диапазоне без создания новых столбцов с формулами, поможет макрос на VBA. Этот метод подходит для одноразовых задач или автоматизации рутинных операций.
Код макроса для усечения чисел до целых без округления:
Sub TruncateDecimals()
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) ' Для положительных чисел
' Для любых чисел используйте:
' cell.Value = Fix(cell.Value)
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон ячеек в Excel и запустите макрос (
F5или черезМакросыв менюРазработчик).
Важные нюансы:
- 🔧 Функция
Int()в VBA ведёт себя какЦЕЛОЕ()в Excel: для отрицательных чисел округляет вниз. Чтобы обрезать дробную часть без округления, используйтеFix(). - 🛡️ Перед запуском макроса сохраните книгу — изменения применяются сразу и не отменяются через
Ctrl+Z.
Чем отличаются Fix() и Int() в VBA?
Функция Fix() просто обрезает дробную часть (например, Fix(-3.7) вернёт -3), а Int() округляет до ближайшего меньшего целого (Int(-3.7) вернёт -4). Для усечения без округления всегда используйте Fix()!
Сравнение методов: какой выбрать
Выбор способа зависит от объёма данных, требуемого результата (число или текст) и регулярности задачи. Ниже таблица для быстрого сравнения:
| Метод | Тип результата | Работает с отрицательными числами | Скорость для больших данных | Когда использовать |
|---|---|---|---|---|
ОТБР() |
Число | ✅ Да | ⚡ Быстро | Для разовых расчётов, когда нужен числовой результат |
ТЕКСТ() |
Текст | ✅ Да | 🐢 Медленно | Для отчётов, где нужен текстовый формат |
ЦЕЛОЕ() |
Число | ❌ Нет (округляет вниз) | ⚡ Быстро | Только для положительных чисел |
| Power Query | Число | ✅ Да | ⚡⚡ Очень быстро | Для регулярной обработки больших массивов |
| VBA-макрос | Число | ✅ Да (с Fix()) |
⚡ Быстро | Для автоматизации рутинных задач |
Для большинства задач оптимален ОТБР() — он прост, универсален и не требует дополнительных навыков. Если же вам нужно обработать десятки тысяч строк, Power Query сэкономит время. Для одноразовых операций над выделенным диапазоном удобен VBA-макрос.
Частые ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при усечении чисел. Рассмотрим типичные ошибки и способы их решения:
- 🔴 Использование
ОКРУГЛ()вместоОТБР(): функцияОКРУГЛ(5,78; 0)вернёт6, а не5, так как округляет до ближайшего целого. Всегда проверяйте, какая функция применена. - 🔴 Неучёт скрытых символов: если числа импортированы из внешних источников (например, CSV), они могут содержать неразрывные пробелы или другие символы. Используйте
ЧИСТ()илиПЕЧСИМВ()для очистки. - 🔴 Преобразование текста в числа: если ячейка содержит текст (например,
"5,78"), функции вродеОТБР()вернут ошибку. Предварительно применитеЗНАЧЕН().
Чтобы избежать ошибок:
- Проверяйте тип данных в ячейке (число или текст) через
ТИП()илиЕТЕКСТ(). - Используйте
ЕОШИБКА()для обработки возможных ошибок в формулах. - Для критичных расчётов дублируйте усечение двумя разными методами (например,
ОТБР()и Power Query) и сравнивайте результаты.
⚠️ Внимание: Если вы работаете с финансовыми данными, где важна каждая копейка, никогда не полагайтесь на визуальное отображение чисел в ячейках. Всегда проверяйте реальные значения в строке формул или через =ЯЧЕЙКА("значение"; A1)!
FAQ: Ответы на частые вопросы
Можно ли усечь числа без формул, только через форматирование?
Нет, форматирование ячеек (например, установка 0 десятичных знаков) только скрывает дробную часть при отображении, но не удаляет её. Для настоящего усечения используйте ОТБР() или другие методы из статьи.
Почему после применения ОТБР() в ячейке отображается дата вместо числа?
Excel хранит даты как числа (например, 45000 = 12.01.2023). Если вы применили ОТБР() к ячейке с датой, она преобразовалась в числовой формат. Чтобы вернуть отображение даты, измените формат ячейки на Дата.
Как усечь числа в Google Sheets?
В Google Таблицах работает та же функция ОТБР() (или TRUNC в английской версии). Синтаксис идентичен Excel. Также можно использовать =INT(), но помните про нюансы с отрицательными числами.
Можно ли усечь числа в столбце без создания нового столбца с формулами?
Да, есть три способа:
- Используйте
Специальная вставка → Значенияпосле применения формулы. - Примените Power Query (заменит исходные данные).
- Запустите VBA-макрос из статьи (изменит значения прямо в ячейках).
Почему после усечения сумма чисел в столбце изменилась?
Скорее всего, вы использовали форматирование вместо реального усечения. Например, если в ячейках были числа 1,9 и 2,1, их сумма = 4,0. После визуального форматирования (0 десятичных знаков) вы увидите 2 + 2 = 4, но реальная сумма останется 4,0. Для корректных расчётов усекайте числа до суммирования.