Как округлить число до кратного значения в Excel: от простых формул до VBA

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

Многие пользователи ошибочно считают, что для округления до кратного значения достаточно стандартной функции ОКРУГЛ. На практике это работает только для целых чисел. Например, =ОКРУГЛ(17;5) вернёт 15, а не ожидаемые 20. Мы покажем, как обойти это ограничение и получить точный результат в любой ситуации — от простых таблиц до сложных финансовых моделей.

Особое внимание уделим типичным ошибкам, которые приводят к некорректным расчётам. Например, почему формула =ОКРУГЛВВЕРХ(12,3;0,5) возвращает 12,5 вместо 12,0, и как это исправить. Все примеры протестированы в Excel 2019 и Microsoft 365, но работают и в старых версиях начиная с 2010 года.

1. Стандартные функции: ОКРУГЛТ, ОКРУГЛВВЕРХ и ОКРУГЛВНИЗ

Начнём с встроенных инструментов, которые многие упускают из виду. Функция ОКРУГЛТ (или MROUND в английской версии) специально создана для округления до заданного кратного значения. Её синтаксис:

=ОКРУГЛТ(число; кратное)

Пример: =ОКРУГЛТ(17;5) вернёт 15 (так как 17 ближе к 15, чем к 20), а =ОКРУГЛТ(18;5) — 20. Важная особенность: если число ровно посередине (например, 17.5 при кратном 5), Excel округлит вверх.

Для принудительного округления в нужную сторону используйте:

  • 📈 ОКРУГЛВВЕРХ — всегда к большему кратному (=ОКРУГЛВВЕРХ(12;5) → 15)
  • 📉 ОКРУГЛВНИЗ — всегда к меньшему кратному (=ОКРУГЛВНИЗ(12;5) → 10)
  • ⚖️ ОКРУГЛ — по математическим правилам (17.5 → 18, но 17.4 → 17)

Обратите внимание: эти функции работают только с положительными кратными. Если указать отрицательное значение (например, -5), Excel вернёт ошибку #ЧИСЛО!.

📊 Какую функцию вы используете чаще для округления?
ОКРУГЛ
ОКРУГЛВВЕРХ
ОКРУГЛВНИЗ
ОКРУГЛТ
Свою формулу

2. Формулы для нестандартных случаев: отрицательные кратные и ноль

Что делать, если нужно округлить до отрицательного кратного (например, -10) или до нуля? Стандартные функции здесь бессильны. Решение — комбинация ОКРУГЛ с арифметическими операциями:

=ОКРУГЛ(число/кратное;0)*кратное

Примеры:

  • 🔢 Округление 17 до кратного 5: =ОКРУГЛ(17/5;0)*5 → 15
  • 🔴 Округление -17 до кратного -5: =ОКРУГЛ(-17/-5;0)*-5 → -15
  • ⚪ Округление 3 до кратного 0: вернёт ошибку (делить на ноль нельзя!)

Критическая особенность: при округлении отрицательных чисел результат может отличаться от ожидаемого из-за правил деления. Например, =ОКРУГЛ(-17/5;0)*5 вернёт -20, а не -15, так как -17/5 = -3.4, которое округляется до -3.

Почему Excel неправильно округляет отрицательные числа?

Это связано с направлением округления от нуля. В математике -3.4 ближе к -3, чем к -4, но при умножении на 5 получаем -15, а не -20. Чтобы исправить это, используйте формулу =ОКРУГЛВВЕРХ(число;-бесконечность) для отрицательных кратных.

3. Округление дат и времени до кратных интервалов

С датами и временем в Excel всё сложнее: здесь кратные значения измеряются в днях или долях дня. Например, чтобы округлить время до ближайших 15 минут:

=ОКРУГЛТ(A1;"0:15")

Где A1 — ячейка с временем (например, 14:23). Формат ячейки с результатом должен быть Время.

Для округления даты до ближайшего понедельника (кратное 7 дням):

=ОКРУГЛТ(A1;7)-МОД(A1-2;7)

Здесь -МОД(A1-2;7) — корректировка для привязки к понедельнику (2 — код понедельника в функции ДЕНЬНЕД).

⚠️ Внимание: При работе с временем убедитесь, что ячейка имеет формат Время или Дата. Иначе Excel воспримет значение как текст, и формулы не сработают.
ЗадачаФормулаПример (исходное: 14:23)
Округлить до 15 минут=ОКРУГЛТ(A1;"0:15")14:15
Округлить вверх до часа=ОКРУГЛВВЕРХ(A1;"1:00")15:00
Округлить вниз до 30 минут=ОКРУГЛВНИЗ(A1;"0:30")14:00
Найти ближайший понедельник=ОКРУГЛТ(A1;7)-МОД(A1-2;7)12.06.2026 (если исходная дата 15.06.2026)

4. Округление с условиями: функция ЕСЛИ + ОКРУГЛТ

Допустим, нужно округлить число до 10, но только если оно больше 50, иначе оставить без изменений. Здесь поможет комбинация ЕСЛИ с функциями округления:

=ЕСЛИ(A1>50; ОКРУГЛТ(A1;10); A1)

Более сложный пример: округлить до 5, но только для положительных чисел, а отрицательные округлить до 10:

=ЕСЛИ(A1>0; ОКРУГЛТ(A1;5); ОКРУГЛТ(A1;10))

Для многокритериальных условий используйте ЕСЛИМН (в Excel 2019+) или вложенные ЕСЛИ:

=ЕСЛИМН(

A1<10; ОКРУГЛТ(A1;1);

И(A1>=10;A1<100); ОКРУГЛТ(A1;5);

A1>=100; ОКРУГЛТ(A1;10)

)

Убедитесь, что все скобки закрыты|Проверили формат ячеек (числовой/дата)|Тестируете формулу на 2-3 примерах|Учитываете отрицательные значения (если нужны)-->

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

Если нужно округлить сотни ячеек до кратного значения, ручной ввод формул займёт часы. Решение — макрос на VBA:

Sub ОкруглитьДоКратного()

Dim rng As Range

Dim krатное As Double

Dim ячейка As Range

' Запрашиваем диапазон и кратное значение

On Error Resume Next

Set rng = Application.InputBox("Выделите ячейки для округления:", "Округление", Type:=8)

krатное = Application.InputBox("Введите кратное значение (например, 5 или 0.1):", "Округление", Type:=1)

On Error GoTo 0

' Проверяем корректность ввода

If rng Is Nothing Or krатное = 0 Then Exit Sub

' Округляем каждую ячейку

For Each ячейка In rng

If IsNumeric(ячейка.Value) Then

ячейка.Value = WorksheetFunction.MRound(ячейка.Value, krатное)

End If

Next ячейка

End Sub

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

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

6. Типичные ошибки и как их избежать

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

  • 🚫 Ошибка #ЧИСЛО!: Возникает, если кратное значение равно нулю или не является числом. Проверьте формат ячейки с кратным.
  • 🔄 Неправильное направление округления: Функция ОКРУГЛТ округляет 2.5 до 3, а не до 2. Если нужно всегда округлять вниз, используйте ОКРУГЛВНИЗ.
  • Проблемы с временем: Формат ячейки должен быть Время, иначе Excel воспримет значение как текст. Например, "14:30" без формата станет строкой.
  • 📉 Округление отрицательных чисел: Результат может отличаться от ожидаемого из-за правил деления (см. раздел 2).

Чтобы минимизировать ошибки, всегда тестируйте формулу на 3-4 примерах, включая:

  • Положительные и отрицательные числа
  • Числа, ровно делящиеся на кратное (например, 20 при кратном 5)
  • Числа, находящиеся ровно посередине (например, 17.5 при кратном 5)

7. Продвинутые техники: динамические массивы и LAMBDA

В Excel 365 и Excel 2021 появились динамические массивы и функция LAMBDA, которые позволяют создавать кастомные функции округления. Например, так можно сделать универсальную функцию для округления до любого кратного с выбором направления:

=LAMBDA(число; кратное; направление;

ЕСЛИ(

направление="вверх"; ОКРУГЛВВЕРХ(число; кратное);

ЕСЛИ(

направление="вниз"; ОКРУГЛВНИЗ(число; кратное);

ОКРУГЛТ(число; кратное)

)

)

)(A1; 5; "вверх")

Чтобы упростить использование, присвойте этой LAMBDA-функции имя через Диспетчер имен (Формулы → Диспетчер имен → Создать). Например, назовите её КРАТНОЕ и используйте так:

=КРАТНОЕ(17; 5; "вверх")

Преимущества этого подхода:

  • 🔄 Гибкость: одно имя функции для всех типов округления
  • 📊 Читаемость: формулы становятся короче и понятнее
  • 🔧 Легко модифицировать логику (например, добавить обработку ошибок)

Часто задаваемые вопросы

Можно ли округлить число до кратного 0.1 (одной десятой)?

Да, все описанные методы работают с дробными кратными. Например, =ОКРУГЛТ(1.234;0.1) вернёт 1.2, а =ОКРУГЛВВЕРХ(1.234;0.1) — 1.3. Главное, чтобы кратное значение было положительным.

Почему функция ОКРУГЛТ не работает с отрицательными кратными?

Это ограничение заложено в алгоритм функции. Для обхода используйте формулу =ОКРУГЛ(число/кратное;0)*кратное, но помните, что для отрицательных чисел результат может отличаться (см. раздел 2).

Как округлить все числа в столбце до кратного 1000?

Выделите столбец, создайте новую колонку с формулой =ОКРУГЛТ(A1;1000) и протяните её вниз. Затем скопируйте результаты (Ctrl+C) и вставьте как значения (ПКМ → Специальная вставка → Значения) поверх исходных данных.

Можно ли округлить до кратного, которое само зависит от условия?

Да, используйте вложенные функции. Например, округлить до 5, если число < 100, и до 10, если ≥ 100:

=ОКРУГЛТ(A1; ЕСЛИ(A1<100; 5; 10))
Почему после округления времени получаю ошибку #ЗНАЧ?

Скорее всего, ячейка с временем имеет текстовый формат. Выделите её, нажмите Ctrl+1, выберите формат Время и повторите расчёт. Также проверьте, что в ячейке нет скрытых символов (например, пробелов).