Почему стандартные функции Excel не справляются с округлением до 90?
Вы когда-нибудь пытались округлить число до кратного 90 в Excel и обнаруживали, что стандартные функции вроде ОКРУГЛ или ОКРУГЛТ просто игнорируют ваши усилия? Проблема в том, что Excel по умолчанию ориентирован на округление до степеней 10 (100, 10, 1, 0.1 и т.д.), а округление до произвольного числа вроде 90 требует математической хитрости или комбинации функций.
В этой статье мы разберём 5 проверенных методов, включая:
- 🔢 Использование комбинации
ОКРУГЛи деления/умножения (самый универсальный способ) - 📈 Функции
ОКРУГЛВВЕРХ/ОКРУГЛВНИЗс корректировкой шага - 🤖 Автоматизацию через VBA-макросы для массовой обработки данных
- 📊 Примеры для округления времени, денежных сумм и технических параметров
- ⚠️ Типичные ошибки и как их избежать (включая проблемы с отрицательными числами)
Независимо от того, нужно ли вам округлить углы в чертежах (где 90° — ключевое значение), цены в прайс-листе (например, до 90 рублей) или технические параметры (скажем, давление в 90 атмосфер), вы найдёте здесь рабочее решение.
Метод 1: Округление через деление и умножение (универсальный)
Это самый надёжный способ, который работает во всех версиях Excel (включая Excel 365, Excel 2019 и Excel Online). Формула строится на принципе приведения числа к кратному 90 через промежуточное деление:
=ОКРУГЛ(число/90; 0) * 90
Разберём на примере. Допустим, у вас в ячейке A1 значение 124, и вы хотите округлить его до ближайшего кратного 90:
- Делим 124 на 90: получаем ~1.377.
- Округляем результат до целого:
ОКРУГЛ(1.377; 0) = 1. - Умножаем обратно на 90:
1 * 90 = 90.
| Исходное число | Формула | Результат | Пояснение |
|---|---|---|---|
| 124 | =ОКРУГЛ(A1/90;0)*90 |
90 | 124 ближе к 90, чем к 180 |
| 172 | =ОКРУГЛ(A1/90;0)*90 |
180 | 172 ближе к 180, чем к 90 |
| -260 | =ОКРУГЛ(A1/90;0)*90 |
-270 | Отрицательные числа округляются корректно |
| 89.9 | =ОКРУГЛ(A1/90;0)*90 |
90 | Дробные значения округляются по правилам математики |
Важно: если вам нужно всегда округлять в большую сторону (например, для расчёта запаса материалов), замените ОКРУГЛ на ОКРУГЛВВЕРХ:
=ОКРУГЛВВЕРХ(A1/90; 0) * 90
Убедитесь, что в ячейке нет текста (только числа)|Проверьте формат ячейки (должен быть "Общий" или "Числовой")|Тестируйте формулу на положительных и отрицательных значениях|Сравните результат с калькулятором для точности
-->
Метод 2: Округление вверх/вниз до 90 без дробных операций
Если вас смущает деление/умножение, можно использовать функции ОКРУГЛВВЕРХ и ОКРУГЛВНИЗ с параметром точности 90. Синтаксис:
=ОКРУГЛВВЕРХ(число; 90) // всегда в большую сторону
=ОКРУГЛВНИЗ(число; 90) // всегда в меньшую сторону
Примеры:
- 📌
ОКРУГЛВВЕРХ(85; 90)→ 90 (85 ближе к 90, чем к 0) - 📌
ОКРУГЛВВЕРХ(95; 90)→ 180 (95 ближе к 180, чем к 90) - 📌
ОКРУГЛВНИЗ(175; 90)→ 90 (175 ближе к 180, но функция принудительно округляет вниз)
⚠️ Внимание: Эти функции не учитывают близость к краю. Например,ОКРУГЛВВЕРХ(89; 90)даст 90, аОКРУГЛВВЕРХ(91; 90)— уже 180. Если вам нужно математически корректное округление, используйте метод 1.
Что делать, если функция возвращает #ЗНАЧ!?
Ошибка #ЗНАЧ! появляется, если в ячейке не число, а текст или пустое значение. Проверьте формат данных или используйте функцию ЕЧИСЛО для фильтрации:
=ЕСЛИ(ЕЧИСЛО(A1); ОКРУГЛВВЕРХ(A1;90); "Ошибка")
Метод 3: Округление до 90 с учётом остатка (продвинутый)
Для задач, где важно учитывать остаток от деления (например, при расчёте количества упаковок по 90 штук), подойдёт формула с функцией ОСТАТ:
=ЕСЛИ(ОСТАТ(число; 90) >= 45; ОКРУГЛВВЕРХ(число/90;0)*90; ОКРУГЛВНИЗ(число/90;0)*90)
Логика проста:
- Вычисляем остаток от деления числа на 90.
- Если остаток ≥ 45, округляем вверх (например, 130 → 180).
- Если остаток < 45, округляем вниз (например, 120 → 90).
Это полезно для:
- 📦 Расчёта количества коробок (если в каждой по 90 единиц товара).
- ⏱ Округления времени до 90-минутных интервалов (например, для тарификации услуг).
- 💰 Финансовых отчётов, где суммы кратно 90 рублям.
Метод 4: Автоматизация через VBA (для массовой обработки)
Если вам нужно округлить тысячи ячеек или интегрировать округление до 90 в макрос, используйте VBA. Ниже код для пользовательской функции:
Function RoundTo90(ByVal num As Double) As Double
RoundTo90 = WorksheetFunction.Round(num / 90, 0) * 90
End Function
Как применять:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в модуль (меню
Insert → Module). - Теперь в Excel можно использовать
=RoundTo90(A1).
Преимущества метода:
- 🚀 Работает в 100 раз быстрее, чем формулы, для больших массивов данных.
- 🔄 Можно модифицировать для округления вверх/вниз (замените
RoundнаWorksheetFunction.RoundUp). - 📁 Легко интегрировать в другие макросы (например, для автоматического формирования отчётов).
⚠️ Внимание: Перед использованием макросов убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы). В противном случае функция вернёт ошибку#ИМЯ?.
Метод 5: Округление с условиями (для сложных задач)
Иногда округление до 90 нужно применять выборочно — например, только к числам больше 100 или только к положительным значениям. Для этого комбинируем округление с функцией ЕСЛИ:
Пример 1. Округляем до 90 только числа > 100:
=ЕСЛИ(A1>100; ОКРУГЛ(A1/90;0)*90; A1)
Пример 2. Округляем до 90 только положительные числа:
=ЕСЛИ(A1>0; ОКРУГЛ(A1/90;0)*90; A1)
Пример 3. Округляем до 90 с учётом диапазона (например, от 50 до 200):
=ЕСЛИ(И(A1>=50; A1<=200); ОКРУГЛ(A1/90;0)*90; "Вне диапазона")
Эти формулы полезны для:
- 📊 Финансовых моделей, где округление применяется только к крупным суммам.
- 📏 Технических чертежей, где углы 90° актуальны только для определённых деталей.
- 📅 Планирования времени, где 90-минутные блоки используются только в рабочие часы.
Типичные ошибки и как их избежать
Даже опытные пользователи Excel сталкиваются с проблемами при округлении до произвольных чисел. Вот 5 самых распространённых ошибок и их решения:
- Ошибка #ДЕЛ/0!
Появляется, если в формуле есть деление на ноль. Проверьте, что в ячейке с числом не стоит 0 или текст. Используйте
ЕСЛИОШИБКА:=ЕСЛИОШИБКА(ОКРУГЛ(A1/90;0)*90; "Ошибка данных") - Неправильное округление отрицательных чисел
Функции
ОКРУГЛВВЕРХ/ОКРУГЛВНИЗработают с отрицательными числами иначе, чем ожидает пользователь. Например,ОКРУГЛВНИЗ(-80; 90)вернёт -180, а не -90. Чтобы исправить, используйте модуль:=ЗНАК(A1) ОКРУГЛ(ABS(A1)/90;0) 90 - Формат ячейки мешает отображению
Если результат округляется корректно, но отображается с дробями (например, 90.0000001), измените формат ячейки на
Числовойс 0 десятичных знаков. - Забыли умножить обратно на 90
Частая ошибка — использовать только
ОКРУГЛ(A1/90;0)и забыть домножить на 90. Результат будет неверным (например, 1 вместо 90). - Конфликт с другими формулами
Если округление встроено в сложную формулу, проверьте порядок действий с помощью
Формула → Вычислить формулу(F9).
Почему ОКРУГЛТ не работает для 90?
Функция ОКРУГЛТ округляет до заданного количества значащих цифр, а не до кратного числа. Например, ОКРУГЛТ(124; 2) даст 120 (2 значащие цифры), но не 90. Для округления до 90 она бесполезна.
FAQ: Ответы на частые вопросы
Можно ли округлить до 90 без формул, вручную?
Да, но это неэффективно для больших массивов данных. Выделите ячейки → Главная → Формат → Формат ячеек → Число → установите 0 десятичных знаков. Однако это только визуально округлит числа, а в расчётах будут использоваться исходные значения. Для реального округления нужны формулы.
Как округлить время до 90 минут в Excel?
Сначала преобразуйте время в минуты:
=ЧАС(A1)*60 + МИНУТЫ(A1) + СЕКУНДЫ(A1)/60
Затем округлите результат до 90:
=ОКРУГЛ((ЧАС(A1)*60 + МИНУТЫ(A1))/90;0)*90
И верните обратно в формат времени с помощью ВРЕМЯ.
Почему моя формула возвращает #ИМЯ?
Ошибка #ИМЯ? появляется, если:
- Вы опечатались в названии функции (например,
ОКРУГЛЬвместоОКРУГЛ). - Используете английскую версию Excel, где функции называются
ROUND,ROUNDUP. - Не закрыли скобки в формуле.
Проверьте синтаксис и языковые настройки.
Как округлить до 90 в Google Sheets?
В Google Таблицах используются те же формулы, но на английском:
=ROUND(A1/90, 0) * 90
или
=ROUNDUP(A1/90, 0) * 90
Можно ли округлить до 90 с учётом знака числа?
Да, используйте комбинацию ЗНАК и ABS:
=ЗНАК(A1) ОКРУГЛ(ABS(A1)/90; 0) 90
Эта формула сохраняет знак исходного числа (-124 → -90, 172 → 180).