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

Разделение чисел на целую и дробную части в Microsoft Excel — задача, с которой сталкиваются бухгалтеры, инженеры и аналитики. Например, при расчёте часов и минут в временных отчётах, обработке денежных сумм с копейками или анализе измерений с десятичными долями. В этой статье вы найдёте 5 проверенных способов разделения чисел — от элементарных функций до автоматизации через VBA, — а также нюансы работы с отрицательными значениями и округлением.

Важно понимать, что Excel хранит дроби как часть числа после десятичной точки, но визуально их можно представить отдельно. Мы разберём не только стандартные функции вроде ЦЕЛОЕ() и ОСТАТ(), но и малоизвестные приёмы с использованием форматирования ячеек, массивов и даже Power Query. Если вы работаете с большими массивами данных, обратите внимание на раздел про динамические формулы — они сэкономят время при обновлении таблиц.

1. Стандартные функции: ЦЕЛОЕ, ОСТАТ и ДРОБЬ

Начнём с базовых инструментов, которые доступны во всех версиях Excel начиная с 2007 года. Эти функции не требуют дополнительных надстроек и работают даже в Excel Online.

Функция ЦЕЛОЕ(число) возвращает целую часть числа, округлённую вниз до ближайшего целого. Например, =ЦЕЛОЕ(5.7) вернёт 5, а =ЦЕЛОЕ(-3.2)-4 (поскольку округление идёт в сторону уменьшения). Для положительных чисел альтернативой служит ОТБР(число; 0), которая просто обрезает дробную часть без округления.

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

=число - ЦЕЛОЕ(число)

Или специализированную функцию ДРОБЬ(число), которая появилась в Excel 2013 и позже. Например, =ДРОБЬ(12.98) вернёт 0.98. Обратите внимание: для отрицательных чисел результат тоже будет отрицательным (например, =ДРОБЬ(-4.3) даст -0.3).

  • Плюсы: простота, совместимость со всеми версиями Excel.
  • Минусы: не учитывают округление дробной части (например, до 2 знаков после запятой).
  • ⚠️ Нюанс: функция ОСТАТ(число; 1) тоже возвращает дробную часть, но работает иначе с отрицательными значениями.
📊 Какой версией Excel вы пользуетесь?
2010-2016
2019-2021
Office 365 (Microsoft 365)
Excel Online
Другой

2. Форматирование ячеек: визуальное разделение без формул

Если вам нужно только отобразить целую и дробную части отдельно (без расчётов), используйте пользовательский формат ячеек. Этот метод не меняет само значение, а только его представление.

Выделите ячейку с числом (например, 12.456), нажмите Ctrl+1 (или правая кнопка → Формат ячеек), выберите категорию Все форматы и введите:

[ч]:мм:сс

Для числа 12.456 Excel покажет 12:27:22 (где 12 — целая часть, а 27:22 — дробная, переведённая в минуты и секунды). Для десятичных дробей подойдёт формат:

# "целых" 0.00 "дробных"

Тогда 3.1415 отобразится как 3 целых 14.15 дробных.

⚠️ Внимание: Пользовательское форматирование не изменяет фактическое значение ячейки. Если вы сошлётесь на неё в другой формуле, Excel будет использовать исходное число (12.456, а не 12 или 0.456).
ФорматПример числаОтображение
#.00 "|" 0.005.6785.00 | 0.68
[ч]:мм24.524:30
0 "руб." 00 "коп."100.25100 руб. 25 коп.

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

Часто требуется не просто отделить дробную часть, но и округлить её до определённого количества знаков. Например, при работе с финансовыми данными (копейки) или измерениями (миллиметры). Для этого комбинируйте функции ЦЕЛОЕ() и ОКРУГЛ():

Формула для целой части остаётся прежней: =ЦЕЛОЕ(A1).

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

=ОКРУГЛ(A1 - ЦЕЛОЕ(A1); 2)

Если нужно всегда показывать 2 знака (даже если они нули), используйте:

=ТЕКСТ(ОКРУГЛ(A1 - ЦЕЛОЕ(A1); 2); "0.00")

1. Убедитесь, что в ячейке установлен общий формат (не "Денежный" или "Процентный").

2. Для отрицательных чисел добавьте проверку: =ЕСЛИ(A1<0; ОКРУГЛ(A1 - ЦЕЛОЕ(A1); 2) * -1; ОКРУГЛ(A1 - ЦЕЛОЕ(A1); 2)).

3. Проверьте результат на крайних значениях (например, 0.999 и -0.001).

-->

Для автоматизации процесса создайте динамический массивExcel 365):

=ВЫБОР({1;2}; ЦЕЛОЕ(A1:A10); ОКРУГЛ(A1:A10 - ЦЕЛОЕ(A1:A10); 2))

Эта формула вернёт два столбца: в первом — целые части, во втором — округлённые дробные.

4. Разделение через Power Query (для больших данных)

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

Алгоритм действий:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (или Get & Transform → Из таблицы).
  2. В редакторе Power Query выберите столбец с числами → Добавить столбец → Пользовательский.
  3. Для целой части введите формулу: Number.IntegerDivide([ВашСтолбец]; 1).
  4. Для дробной части: Number.Mod([ВашСтолбец]; 1).
  5. Нажмите Закрыть и загрузить.

Power Query создаст новую таблицу с разделёнными значениями. Преимущество этого метода — автоматическое обновление при изменении исходных данных (достаточно кликнуть Обновить все на вкладке Данные).

Как обработать отрицательные числа в Power Query?

В редакторе Power Query добавьте пользовательский столбец с формулой:

if [ВашСтолбец] < 0

then Number.Mod([ВашСтолбец]; 1) * -1

else Number.Mod([ВашСтолбец]; 1)

Это гарантирует, что дробная часть всегда будет положительной (например, для -3.7 вернёт 0.7, а не -0.7).

5. Автоматизация через VBA (для продвинутых пользователей)

Если вам нужно разделять числа регулярно и в больших объёмах, напишите простой макрос. Откройте редактор VBA (Alt+F11), вставьте новый модуль (Insert → Module) и добавьте код:

Sub SplitNumber()

Dim rng As Range

Dim cell As Range

Dim intPart As Integer, fracPart As Double

' Выделяем диапазон с числами

Set rng = Selection

' Добавляем два новых столбца справа

rng.Offset(0, 1).Resize(, 2).Value = ""

rng.Offset(0, 1).Value = "Целая часть"

rng.Offset(0, 2).Value = "Дробная часть"

' Обрабатываем каждую ячейку

For Each cell In rng

intPart = Int(cell.Value)

fracPart = cell.Value - intPart

' Записываем результаты

cell.Offset(0, 1).Value = intPart

cell.Offset(0, 2).Value = fracPart

Next cell

End Sub

Чтобы запустить макрос:

  1. Выделите диапазон с числами.
  2. Нажмите Alt+F8, выберите SplitNumber и кликните Выполнить.

Макрос создаст два новых столбца с целыми и дробными частями. Для обработки отрицательных чисел замените строку fracPart = cell.Value - intPart на:

fracPart = Abs(cell.Value - intPart)
Application.ScreenUpdating = False

и включите в конце:

Application.ScreenUpdating = True

-->

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

В Excel время хранится как дробная часть суток (например, 12:30 = 0.520833). Чтобы разделить часы и минуты:

Для часов используйте:

=ЦЕЛОЕ(A1 * 24)

Для минут:

=ОСТАТ(A1 * 1440; 60)

Для секунд:

=ОСТАТ(A1 * 86400; 60)

Пример: если в ячейке A1 значение 12:45:30 (что равно 0.53125), формулы вернут:

  • 12 (часы),
  • 45 (минуты),
  • 30 (секунды).
⚠️ Внимание: При работе с временными данными убедитесь, что ячейка имеет формат Общий или Числовой. Если формат установлен как Время, Excel может интерпретировать результаты некорректно (например, 12 часов отобразится как 12:00).
=ВРЕМЯ(0; дробная_часть*1440; 0)

где дробная_часть — значение от 0 до 1.

-->

Частые ошибки и как их избежать

Даже в простых операциях с числами пользователи допускают ошибки. Вот самые распространённые:

  • 🔢 Игнорирование отрицательных чисел: Функция ОСТАТ(-3.2; 1) вернёт -0.2, а не 0.8. Используйте =1 - ОСТАТ(1 - A1; 1) для корректного результата.
  • 📉 Потеря точности: При округлении дробной части до 2 знаков 0.999 станет 1.00, что исказит сумму целой и дробной частей. Проверяйте результаты на крайних значениях.
  • 🔄 Копирование формул: Если вы протягиваете формулу вниз, а ссылки не обновляются, зафиксируйте столбец (например, $A1 вместо A1).
  • 📊 Несоответствие форматов: Ячейка с формулой =ЦЕЛОЕ(A1) может отображать 3.00 вместо 3, если формат установлен как Числовой с 2 знаками после запятой. Используйте формат Общий.

Критическая ошибка: если вы используете функцию ДРОБЬ() в Excel 2010 или раньше, она вернёт #ИМЯ?. В этих версиях замените её на =A1 - ЦЕЛОЕ(A1).

FAQ: Ответы на популярные вопросы

Можно ли разделить число на целую и дробную части без формул?

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

Почему функция ОСТАТ() возвращает отрицательное значение для дробной части?

Функция ОСТАТ(число; делитель) сохраняет знак делимого. Например, ОСТАТ(-3.2; 1) вернёт -0.2, а не 0.8. Чтобы получить положительную дробную часть, используйте:

=ЕСЛИ(A1<0; 1 - ОСТАТ(A1; -1); ОСТАТ(A1; 1))
Как разделить число на целую и дробную части в Google Sheets?

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

  • =INT(A1) — целая часть,
  • =MOD(A1; 1) — дробная часть,
  • =A1 - INT(A1) — альтернатива для дробной части.

Для округления дробной части до 2 знаков: =ROUND(MOD(A1; 1); 2).

Можно ли разделить число на целую и дробную части в Excel для Mac?

Да, все описанные методы работают и в Excel для Mac (версии 2016 и новее). Единственное отличие — горячие клавиши:

  • Формат ячеек: Command+1 (вместо Ctrl+1 в Windows).
  • Редактор VBA: Option+F11.
Как разделить число, если целая и дробная части разделены запятой в текстовом формате (например, "12,34")?

Сначала преобразуйте текст в число с помощью функции ЗНАЧЕН():

=ЗНАЧЕН(ПОДСТАВИТЬ(A1; ","; "."))

Затем применяйте стандартные методы разделения (например, =ЦЕЛОЕ(ЗНАЧЕН(ПОДСТАВИТЬ(A1; ","; ".")))).