У меня есть ячейка (A40) на листе Excel, которая содержит сумму диапазона значений (формула: =SUM(A1:A39)).

Другая ячейка должна вывести "OK", если сумма равна 0, и "ERROR", если сумма не равна 0. У меня есть следующая формула: =IF(A40=0;"OK";"ERROR") . К сожалению, это всегда печатает "ОШИБКА".

Все от А1 до А40 имеют формат "Валюта", если это имеет значение.

Является ли это еще одним «никогда не сравнивать плавающие точки с фиксированными значениями, вместо этого использовать небольшой диапазон эпсилон»? Следующее исправление работает ... =IF(AND(A40>-0,1; A40<0,1);"OK";"ERROR") . Сколько нулей "достаточно", чтобы всегда получить правильный вывод "ОК" или "ОШИБКА"?

1 ответ1

2

Да, у вас будут проблемы при сравнении числа с плавающей точкой с целым числом. Try =IF(ROUND(A40;2)=0;"OK";"ERROR")

Это сначала округлит вашу сумму до двух знаков после запятой, а затем сделает сравнение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .