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

При попытке разделить число 12,75 на целую (12) и дробную (0,75) части в Excel многие пользователи сталкиваются с неожиданными результатами: функция =РАЗДЕЛИТЬ() отсутствует, а ручное разбиение через текстовые инструменты приводит к ошибкам формата. Проблема кроется в том, что Excel по умолчанию воспринимает ячейки с числами как единое значение, и для их разделения требуются специальные функции или преобразования.

Например, если в ячейке A1 хранится значение 8.42, и вам нужно перенести 8 в одну колонку, а 0.42 — в другую, простого копирования недостаточно. Система либо округлит данные, либо преобразует их в дату (если используется точка как разделитель). Решение зависит от цели: требуется ли сохранить числовой формат для дальнейших вычислений или достаточно текстового представления.

В этой статье разберём 5 рабочих методов — от стандартных функций ЦЕЛОЕ() и ОСТАТ() до текстовых формул и матричных вычислений, включая обработку отрицательных чисел и чисел с плавающей запятой. Все примеры протестированы в Excel 2019 и Office 365, но работают и в версиях с 2010 года.

1. Разделение с помощью функций ЦЕЛОЕ() и ОСТАТ()

Самый надёжный способ выделить целую и дробную части — использовать комбинацию математических функций. Функция =ЦЕЛОЕ(число) возвращает целую часть, а =ОСТАТ(число; 1) или =число-ЦЕЛОЕ(число) — дробную.

Пример для числа 15,89 в ячейке A1:

=ЦЕЛОЕ(A1)  → вернёт 15

=A1-ЦЕЛОЕ(A1) → вернёт 0,89

  • Плюсы: сохраняет числовой формат, работает с отрицательными числами.
  • ⚠️ Минусы: для дробной части требуется отдельная ячейка или формула.
  • 🔄 Альтернатива: =ОКРВНИЗ(A1; 0) вместо ЦЕЛОЕ() для округления вниз.
⚠️ Внимание: Если в настройках Excel в качестве разделителя целой и дробной части используется запятая (например, 12,34), а вы вводите число с точкой (12.34), программа автоматически преобразует его в дату. Перед работой проверьте региональные настройки в Файл → Параметры → Дополнительно → Параметры редактирования.

2. Текстовые функции: ЛЕВСИМВ(), ПСТР() и НАЙТИ()

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

Формулы для числа "9.23" в ячейке A1 (в текстовом формате!):

=ЛЕВСИМВ(A1; НАЙТИ("."; A1)-1)  → "9" (целая часть)

=ПРАВСИМВ(A1; ДЛСТР(A1)-НАЙТИ("."; A1)) → ".23" (дробная часть с точкой)

ФункцияПримерРезультат для "12.75"
ЛЕВСИМВ()=ЛЕВСИМВ(A1; 2)"12"
ПСТР()=ПСТР(A1; 4; 2)"75"
ПОИСК()=ПОИСК("."; A1)3 (позиция точки)

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

=ЗНАЧЕН(ЛЕВСИМВ(A1; НАЙТИ("."; A1)-1))
Как обработать числа с запятой вместо точки?

Если в ваших данных используется запятая как разделитель (например, "12,75"), замените в формулах точку (".") на запятую (","). Например: =ЛЕВСИМВ(A1; НАЙТИ(","; A1)-1)

3. Разделение через формат ячейки (без формул)

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

Инструкция:

  1. Выделите ячейку с числом (например, 24.56).
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Вкладка ЧислоВсе форматы.
  4. В поле Тип введите: #.00 "целых и" ,00 "дробных".

Результат: ячейка будет отображать 24 целых и 56 дробных, но при использовании в формулах останется числом 24.56.

⚠️ Внимание: Пользовательский формат не разделяет данные на две ячейки — он только изменяет визуальное представление. Для реального разделения используйте методы из разделов 1 или 2.

4. Разделение с помощью Power Query (для больших данных)

Если вам нужно разделить тысячи строк дробных чисел, ручное применение формул займёт слишком много времени. В этом случае используйте инструмент Power Query (доступен в Excel 2016 и новее).

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

  1. Выделите диапазон с данными → вкладка ДанныеИз таблицы/диапазона.
  2. В открывшемся редакторе Power Query выделите столбец с числами.
  3. Перейдите на вкладку Добавить столбецИзвлечьТекст перед разделителем (укажите . или ,).
  4. Повторите шаг 3 для Текст после разделителя.
  5. Нажмите Закрыть и загрузить.

Преимущество метода: обработка миллионов строк без замедления Excel. Недостаток: дробная часть будет текстовой — для вычислений её нужно преобразовать обратно в число функцией =ЗНАЧЕН().

📊 Какой метод разделения дробных чисел вы используете чаще?
Функции ЦЕЛОЕ() и ОСТАТ()
Текстовые функции (ЛЕВСИМВ, ПСТР)
Power Query
Пользовательский формат

5. Разделение отрицательных чисел и чисел с плавающей запятой

Отрицательные числа (например, -17.34) и числа в научной нотации (например, 1.23E+05) требуют особого подхода. Стандартные функции ЦЕЛОЕ() и ОСТАТ() работают корректно, но текстовые методы могут давать сбои.

Примеры формул для отрицательных чисел:

=ЦЕЛОЕ(A1)       → для -17.34 вернёт -17

=A1-ЦЕЛОЕ(A1) → вернёт -0,34 (дробная часть сохраняет знак!)

Для чисел в формате 1.23E+05 (123000) сначала преобразуйте их в стандартный вид с помощью =ЗНАЧЕН(ПОДСТАВИТЬ(A1; "E"; "*10^")), затем применяйте функции разделения.

✔ Проверьте формат ячеек (числовой или текстовый)

✔ Убедитесь, что разделитель (точка/запятая) совпадает с региональными настройками

✔ Для отрицательных чисел учитывайте знак дробной части

✔ Преобразуйте научную нотацию в стандартный формат-->

6. Автоматизация через VBA-макрос

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

Sub SplitDecimal()

Dim rng As Range, cell As Range

Dim intPart As Double, decPart As Double

Set rng = Selection

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

rng.Offset(0, 1).EntireColumn.Insert

rng.Offset(0, 2).EntireColumn.Insert

' Заголовки

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

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

' Обработка каждой ячейки

For Each cell In rng

intPart = Int(cell.Value)

decPart = cell.Value - intPart

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

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

Next cell

End Sub

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

  1. Нажмите Alt+F11 для открытия редактора VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с числами и запустите макрос (F5).
⚠️ Внимание: Макрос перезапишет данные в столбцах справа от выделенного диапазона. Перед запуском сохраните резервную копию файла.

1. Используйте ЦЕЛОЕ() и ОСТАТ() для числовых вычислений.

2. Применяйте ЛЕВСИМВ() и ПСТР() для текстовых данных.

3. Для больших массивов подходит Power Query.

4. Отрицательные числа и научная нотация требуют предварительной обработки.

5. Автоматизируйте задачу с помощью VBA, если она повторяется часто.-->

FAQ: Частые вопросы по разделению дробных чисел

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

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

=ABS(ОСТАТ(A1; 1))
Как разделить число, если целая и дробная части разделены запятой, а не точкой?

Если число хранится как текст с запятой (например, "3,14"), замените запятую на точку перед разделением:

=ЦЕЛОЕ(ПОДСТАВИТЬ(A1; ","; "."))

Или измените региональные настройки Excel (см. раздел 1).

Можно ли разделить дробное число на 3 части (например, 123.456 → 123, 45, 6)?

Да, используйте комбинацию текстовых функций:

=ЛЕВСИМВ(A1; НАЙТИ(","; A1)-1)  → "123"

=ПСТР(A1; НАЙТИ(","; A1)+1; 2) → "45"

=ПРАВСИМВ(A1; 1) → "6"

Почему после разделения дробная часть отображается как 0,6 вместо 0,60?

Это связано с настройками отображения чисел в ячейке. Чтобы показать два знака после запятой, выделите ячейку → Ctrl+1 → выберите формат Числовой с 2 десятичными знаками.

Как разделить дробные числа в Google Таблицах?

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

=INT(A1)       → целая часть

=A1-INT(A1) → дробная часть

=LEFT(A1; FIND(","; A1)-1) → текстовая целая часть