В математике деление на ноль – невозможно! Одним из способов для объяснения данного правила является анализ процесса, который показывает, что происходит, когда одно число разделено на другое.
Ошибка деления на ноль в Excel
В реальности операция деление это по сути тоже что и вычитание. Например, деление числа 10 на 2 является многократным вычитанием 2 от 10-ти. Многократность повторяется до той поры пока результат не будет равен 0. Таким образом необходимо число 2 вычитать от десяти ровно 5 раз:
- 10-2=8
- 8-2=6
- 6-2=4
- 4-2=2
- 2-2=0
Если же попробовать разделить число 10 на 0, никогда мы не получим результат равен 0, так как при вычитании 10-0 всегда будет 10. Бесконечное количество раз вычитаний ноля от десяти не приведет нас к результату =0. Всегда будет один и ото же результат после операции вычитания =10:
- 10-0=10
- 10-0=10
- 10-0=10
- ∞ бесконечность.
В кулуарах математиков говорят, что результат деления любого числа на ноль является «не ограниченным». Любая компьютерная программа, при попытке деления на 0, просто возвращает ошибку. В Excel данная ошибка отображается значением в ячейке #ДЕЛ/0!.
Но при необходимости можно обойти возникновения ошибки деления на 0 в Excel. Просто следует пропустить операцию деления если в знаменателе находится число 0. Решение реализовывается с помощью помещения операндов в аргументы функции =ЕСЛИ():
Таким образом формула Excel позволяет нам «делить» число на 0 без ошибок. При делении любого числа на 0 формула будет возвращать значение 0. То есть получим такой результат после деления: 10/0=0.
Как работает формула для устранения ошибки деления на ноль
Для работы корректной функция ЕСЛИ требует заполнить 3 ее аргумента:
- Логическое условие.
- Действия или значения, которые будут выполнены если в результате логическое условие возвращает значение ИСТИНА.
- Действия или значения, которые будут выполнены, когда логическое условие возвращает значение ЛОЖЬ.
В данном случаи аргумент с условием содержит проверку значений. Являются ли равным 0 значения ячеек в столбце «Продажи». Первый аргумент функции ЕСЛИ всегда должен иметь операторы сравнения между двумя значениями, чтобы получить результат условия в качестве значений ИСТИНА или ЛОЖЬ. В большинстве случаев используется в качестве оператора сравнения знак равенства, но могут быть использованы и другие например, больше> или меньше >. Или их комбинации – больше или равно >=, не равно!=.
Если условие в первом аргументе возвращает значение ИСТИНА, тогда формула заполнит ячейку значением со второго аргумента функции ЕСЛИ. В данном примере второй аргумент содержит число 0 в качестве значения. Значит ячейка в столбце «Выполнение» просто будет заполнена числом 0 если в ячейке напротив из столбца «Продажи» будет 0 продаж.
Если условие в первом аргументе возвращает значение ЛОЖЬ, тогда используется значение из третьего аргумента функции ЕСЛИ. В данном случаи - это значение формируется после действия деления показателя из столбца «Продажи» на показатель из столбца «План».
Формула для деления на ноль или ноль на число
Усложним нашу формулу функцией =ИЛИ(). Добавим еще одного торгового агента с нулевым показателем в продажах. Теперь формулу следует изменить на:
Скопируйте эту формулу во все ячейки столбца «Выполнение»:
Теперь независимо где будет ноль в знаменателе или в числителе формула будет работать так как нужно пользователю.
Добрый день, дорогие читатели. На днях одна из фирм, которую я обслуживаю обратилась ко мне с проблемой.
При закрытии месяца в 1С появлялась ошибка: Деление на 0.
{Документ.ФормированиеЗаписейКнигиПокупок.МодульОбъекта(2466)}: Деление на 0
НДССтроки = Окр(СтрокаТаблицы.НДС * СуммаБезНДССтроки / СтрокаТаблицы.СуммаБезНДС, 2);
Первым делом, я залез на форум с спросил совета у программистов 1С. Мне сказали проверить кратность в Валютах. Она должна быть равна 1.
Для перехода в раздел Валюты переходим во вкладку Банк и выбираем вкладку Валюты . Проверяем везде кратность, она должна равняться 1 . Загружаем курсы валют за период, который не закрывается.
Раздел Валюты должен выглядеть следующим образом:
После проверки своей базы я убедился, что с курсами валют и кратностью у меня полный порядок, но закрытие месяца так и не проводилось. (В большинстве случаев проблема деления на 0, заключается именно в кратности в курсах валют)
Я долго не мог разобраться в данной проблеме, перепровел все документы в книге покупок и продаж.
Лишь спустя несколько дней я нашел непроведенный документ без записей в разделе Операции — Регламентные документы 1С.
В регламентных документах НДС в конце списка я обнаружил непроведенный документ. Формирование книги покупок, в котором ничего не было записано, я его провел и какого было мое удивление, месяц закрылся, проблема решена.
В Зарплата и Управление Персоналом 3.0, платформа 8.3.2580, возникла ошибка:
При заполнении документа Начисление зарплаты и взносов выходит сообщение:
При расчете начисления «Оплата по окладу» за Январь 2017 для сотрудника Х возникла ошибка: Деление на 0
Формула, используемая при расчете: Оклад * ВремяВДнях / НормаДней.
Решение
Проблема связана с конкретной установленной версией конфигурации, её нужно обновить до 3.1. Общий алгоритм такой:
1. Обновил
платформу до актуальной.
2. Обновил
конфигурацию до версии 3.1
3. Запустил приложение для отладки, вышла ошибка
4. Закрыл полностью 1С, запустил тестирование chdbfl
(ошибок не обнаружено).
5. Запустил конфигуратор и запустил тестирование и исправление
со следующими настройками (сверху вниз): проверки и режимы проставил все галки, тестирование и исправление, при наличии ссылок на несуществующие объекты — очищать ссылки, при частичной потере данных объектов — не изменять.
6. Запустил приложение для отладки и всё прошло как по маслу, база обновилась и ошибка при заполнении не возникла
Надеюсь Вам было полезно 🙂
Похожие статьи