2016-01-15 2 views
4

Я использую 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

Если удалить 'INT' обертку, результаты будут быть одинаковым. Я просто протестировал его. Подробнее о том, как функция «INT» влияет на вычисления, см. [This] (http://spreadsheets.about.com/od/roundingnumberfunctions/ss/2011-07-01-excel-integer-int-function-2010.htm) –

ответ

3

Excel внутренне представляет значения даты/времени как числа с плавающей точкой двойной точности. Целочисленная часть представляет день. Десятичная часть представляет время. Числа с плавающей запятой имеют конечную точность (около 15 значащих базовых 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)

Смежные вопросы