Excel между временами возвращает разные значения в одном диапазоне

Я использую Excel для расчета общего количества минут между временами.

Моя формула расчета выглядит так: =INT((M3-L3)*1440)

Time1                   Time2                Minutes
5.1.2016  21:00:00      5.1.2016  22:00:00   59
5.1.2016  22:00:00      5.1.2016  23:00:00   60

Первый результат 59, но второй результат 60.

В чем здесь проблема?

1 ответ

Решение

Excel внутренне представляет значения даты / времени как числа с плавающей запятой двойной точности. Целая часть представляет день. Десятичная часть представляет время. Числа с плавающей точкой имеют конечную точность (около 15 значащих цифр от 10 до 10). Это означает, что некоторые числа не могут быть представлены точно, что приводит к небольшим ошибкам аппроксимации, которые могут привести к неожиданным результатам.

В вашем примере первый расчет выполняется как...

=INT((5.1.2016 21:00 - 5.1.2016 22:00)*1440)
=INT((42491.875-42491.9166666667)*1440)
=INT(0.041666666664241*1440)
=INT(59.9999999965975)
=59

Второй расчет осуществляется как...

=INT((5.1.2016 22:00 - 5.1.2016 23:00)*1440)
=INT((42491.9166666667-42491.9583333333)*1440)
=INT(0.041666666664241*1440)
=INT(60.0000000069849)
=60

Это ограничение математики с плавающей точкой.

В этом конкретном случае вы можете получить желаемые результаты, заменив INT(число) на ROUND(число,0) или MROUND(число,1).

Другие вопросы по тегам