Почему стандартные функции Excel не справляются с округлением до 0 или 5?
Вы когда-нибудь сталкивались с задачей привести цены, тарифы или производственные нормы к «удобным» значениям — например, округлить 17 до 15, а 22 до 20? Стандартные функции ОКРУГЛ, ОКРУГЛВВЕРХ или ОКРУГЛВНИЗ здесь бессильны: они работают только с кратными 1, 10, 100 и т.д., но не умеют «привязываться» к цифрам 0 или 5 в конце числа.
Эта проблема особенно актуальна для:
- 📊 Финансовых отчётов, где цены округляют до «красивых» значений (например, 99 → 100, 147 → 145).
- ⚙️ Производственных норм, где время выполнения операции округляют до 5 или 10 минут (например, 8 минут → 10, 12 минут → 10 или 15).
- 📦 Логистики, где вес груза округляют до ближайших 5 кг для упрощения тарификации.
В этой статье вы найдёте 5 рабочих способов округления чисел до 0 или 5 — от простых формул до универсальных решений с использованием МАКС/МИН и даже Power Query. Все примеры протестированы в Excel 2019–2026 и Excel Online.
Способ 1: Формула с ОКРУГЛ и ОСТАТ для чисел до 100
Самый простой метод — комбинация функций ОКРУГЛ и ОСТАТ. Он подходит для чисел в диапазоне 0–100 и округляет их до ближайшего значения, оканчивающегося на 0 или 5.
Формула:
=ОКРУГЛ(A1/5;0)*5
Как это работает:
- Делим число на 5 (например, 17/5 = 3,4).
- Округляем результат до целого (
ОКРУГЛ(3,4;0) = 3). - Умножаем обратно на 5 (3*5 = 15).
| Исходное число | Формула | Результат |
|---|---|---|
| 12 | =ОКРУГЛ(12/5;0)*5 | 10 |
| 17 | =ОКРУГЛ(17/5;0)*5 | 15 |
| 22 | =ОКРУГЛ(22/5;0)*5 | 20 |
| 28 | =ОКРУГЛ(28/5;0)*5 | 30 |
⚠️ Внимание: Эта формула всегда округляет в меньшую сторону до ближайшего кратного 5. Если нужно округление по математическим правилам (12 → 10, 13 → 15), используйте способ 3.
Убедитесь, что числа в диапазоне 0–100|
Проверьте направление округления (в меньшую сторону)|
Тестируйте на крайних значениях (0, 5, 100)|
Скопируйте формулу на весь столбец
-->
Способ 2: Универсальная формула с ЦЕЛОЕ и ОСТАТ (для любых чисел)
Если вам нужно округлить любые числа (включая отрицательные или больше 100), используйте комбинацию ЦЕЛОЕ и ОСТАТ:
=ЦЕЛОЕ(A1/5)*5 + ЕСЛИ(ОСТАТ(A1;5)>=2,5;0)
Разберём логику:
- 🔹
ЦЕЛОЕ(A1/5)*5— находим ближайшее меньшее кратное 5 (например, для 17 это 15). - 🔹
ОСТАТ(A1;5)— вычисляем остаток от деления на 5 (для 17 это 2). - 🔹
ЕСЛИ(ОСТАТ(...)>=2,5;0)— если остаток ≥ 2.5, прибавляем 5, иначе оставляем как есть.
Примеры:
| Исходное число | Результат | Пояснение |
|---|---|---|
| 12 | 10 | Остаток 2 (<2.5) → округлили вниз |
| 13 | 15 | Остаток 3 (≥2.5) → округлили вверх |
| -8 | -10 | Остаток -3 (по модулю 2 <2.5) → округлили вниз |
| 128 | 130 | Остаток 3 (≥2.5) → округлили вверх |
⚠️ Внимание: Для чисел с дробной частью (например, 12.3) сначала примените ОКРУГЛ до целого, иначе формула даст некорректный результат.
=ОКРУГЛВВЕРХ(A1/5;0)*5-->
Способ 3: Округление по математическим правилам (до 0 или 5)
Чтобы округлить число по стандартным правилам (например, 12 → 10, 13 → 15, 17 → 15, 18 → 20), используйте формулу с ОКРУГЛ и коэффициентом:
=ОКРУГЛ(A1/5;0)*5
Но здесь есть нюанс: ОКРУГЛ использует банковское округление (чётные числа округляются вниз, нечётные — вверх). Если вам нужно классическое округление («от 0.5 и выше — вверх»), замените её на:
=ОКРУГЛВВЕРХ((A1-ОСТАТ(A1;5))/5;0)*5
Сравнение результатов:
| Исходное число | Банковское округление | Классическое округление |
|---|---|---|
| 12 | 10 | 10 |
| 13 | 15 | 15 |
| 17 | 15 | 15 |
| 18 | 20 | 20 |
| 22 | 20 | 20 |
| 23 | 25 | 25 |
Почему банковское округление отличается от классического?
Банковское округление (round-to-even) минимизирует систематическую ошибку при массовых вычислениях. Например, 2.5 округляется до 2, а 3.5 — до 4. Это важно для финансовых расчётов, где накапливающиеся погрешности могут искажать итоги.
Способ 4: Округление с использованием МАКС и МИН (для гибких правил)
Если вам нужно настраиваемое округление (например, всегда вверх до 0 или 5, но с ограничением по максимуму), используйте комбинацию МАКС/МИН:
=МИН(ОКРУГЛВВЕРХ(A1/5;0)*5; 100)
Эта формула:
- Округляет число вверх до ближайшего кратного 5 (
ОКРУГЛВВЕРХ(A1/5;0)*5). - Ограничивает результат максимумом 100 (
МИН(..., 100)).
Примеры применения:
- 📦 Логистика: округлить вес до 5 кг, но не больше 50 кг.
- ⏱️ Время: округлить длительность задачи до 5 минут, но не больше 1 часа (60 минут).
- 💰 Цены: округлить до 5 рублей, но не выше 1000 рублей.
⚠️ Внимание: Если в формуле не указать ограничение (МИН), числа больше 100 будут округляться до сотен (например, 102 → 105, 107 → 110). Это может исказить отчёты.
Способ 5: Автоматизация через Power Query (для больших данных)
Если вам нужно округлить тысячи строк или применить сложную логику (например, разные правила для разных категорий), используйте Power Query:
- Выделите данные и перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В редакторе Power Query добавьте пользовательский столбец с формулой:
Number.RoundTo([YourColumn]/5)*5 - Замените
[YourColumn]на имя вашего столбца. - Нажмите
Закрыть и загрузить.
Преимущества этого метода:
- 🔄 Независимость от Excel: правила округления хранятся в запросе, а не в ячейках.
- ⚡ Производительность: обрабатывает миллионы строк без тормозов.
- 📊 Гибкость: можно добавить условия (например, округлять только положительные числа).
Важно: Power Query доступен в Excel 2016 и новее. В Excel 2013 его можно подключить как надстройку «Power Query для Excel».
Типичные ошибки и как их избежать
Даже с правильными формулами можно получить неверные результаты. Вот 5 самых распространённых ошибок и их решения:
| Ошибка | Причина | Решение |
|---|---|---|
| Формула возвращает #ДЕЛ/0! | Деление на ноль или пустая ячейка. | Добавьте проверку: =ЕСЛИ(A1="";"";ОКРУГЛ(A1/5;0)*5) |
| Округление работает только для положительных чисел. | Формула не учитывает знак числа. | Используйте АБС: =ОКРУГЛ(ABS(A1)/5;0)*5*ЗНАК(A1) |
| Результаты не соответствуют ожиданиям (например, 12 → 15). | Неверно выбрано направление округления. | Замените ОКРУГЛ на ОКРУГЛВНИЗ или ОКРУГЛВВЕРХ. |
| Формула медленно работает на больших данных. | Слишком много вложенных функций. | Перенесите логику в Power Query или используйте VBA. |
| Округлённые числа не суммируются корректно. | Погрешности при последовательном округлении. | Сначала суммируйте, затем округляйте итог. |
Если ни один из способов не подходит под вашу задачу, возможно, стоит рассмотреть макросы VBA. Например, этот код округляет выделенные ячейки до 0 или 5:
Sub RoundTo0or5()
Dim cell As Range
For Each cell In Selection
If Not IsEmpty(cell) Then
cell.Value = WorksheetFunction.Round(cell.Value / 5, 0) * 5
End If
Next cell
End Sub
FAQ: Частые вопросы по округлению до 0 или 5
Можно ли округлить числа до 0 или 5 без формул?
Да, но с ограничениями:
- Используйте
Формат ячеек → Числовойс шагом 5 (например, формат0;-0не округляет, а только отображает числа кратные 5). - Для реального округления (изменения значения) формулы или VBA обязательны.
Как округлить время до 5 минут в Excel?
Используйте формулу:
=ОКРУГЛ(A1*"1440"/5;0)*(5/1440)
Где A1 — ячейка с временем. Формула преобразует время в минуты, округляет до 5, затем обратно в формат времени.
Почему моя формула округляет 2.5 до 2, а не до 3?
Это особенность банковского округления в Excel. Чтобы округлить 2.5 до 3, используйте:
=ОКРУГЛВВЕРХ(A1;1)
Или для округления до 0/5:
=ОКРУГЛВВЕРХ(A1/5;0)*5
Как округлить до 0 или 5 только положительные числа, а отрицательные оставить без изменений?
Используйте условие:
=ЕСЛИ(A1<0;A1;ОКРУГЛ(A1/5;0)*5)
Можно ли применить округление ко всему столбцу автоматически?
Да, несколько способов:
- 🔹 Формат ячеек: изменит только отображение, не значения.
- 🔹 Power Query: добавляет столбец с округлёнными данными (см. Способ 5).
- 🔹 VBA: макрос для массового округления (см. пример выше).