1

Я пытаюсь отобразить время за 24 часа в Excel с помощью =TIME() но когда значения превышают 24 часа, они отображаются неправильно. Например, у меня есть =TIME(27;42,81;49) которое должно отображать 24:59. Вместо этого он отображается как 03:42. Я уже изменил формат на [чч: мм]. Это прекрасно работает при выполнении =SUM() для 3 отдельных значений.

3 ответа3

4

Официальная статья о TIME() предполагает, что он должен отображаться только 24 часа. Таким образом, отображение 03:42 будет правильным. Если вы хотите работать с произвольным числом часов, минут и секунд, вы, скорее всего, не сможете использовать эту функцию, а вместо этого, например, формат ячейки.

3

Функция TIME() работает как указано. Из онлайнового руководства, первый параметр определяется:-

Требуется час . Число от 0 (ноль) до 32767, представляющее час. Любое значение больше 23 будет разделено на 24, а остаток будет считаться значением часа. Например, TIME (27,0,0) = TIME (3,0,0) = .125 или 3:00 AM.

Если вы хотите показать часы выше 23, вам нужно будет создать и отформатировать свои собственные значения, например, если часы, минуты и секунды указаны в A1:C1 , установите D1 в:

=A1/24+B1/1440+C1/86400

Теперь вы просто форматируете ячейку как [hh]:mm:ss , как предложено в ответе Аганджу.


[Я оставляю ниже мое предыдущее предложение по форматированию вывода, поскольку используемые им методы могут быть полезны в случаях, не обработанных форматом Аганджу.]

В качестве альтернативы, следующее сгенерирует ячейку, отформатированную так, как вы хотите:

=TEXT(ROUNDDOWN(D1*24),"##")&":"&TEXT(ROUNDDOWN(MOD(D1*1440,60)),"##")&":"&TEXT(ROUNDDOWN(MOD(D1*86400,60)),"##")

Строго говоря, поле секунд должно использовать =ROUND() вместо =ROUNDDOWN() , но это вызовет проблемы со значениями секунд 59,5 и выше.

Если важно ближайшее округление, то сначала D1 должен быть округлен до ближайшей секунды (1/86400), например, путем установки E1 в:

=ROUND(D1*86400)/86400

Форматированная ячейка будет тогда:

=TEXT(ROUNDDOWN(E1*24),"##")&":"&TEXT(ROUNDDOWN(MOD(E1*1440,60)),"00")&":"&TEXT(ROUNDDOWN(MOD(E1*86400,60)),"00")

В любом случае эти формулы могут быть объединены так, чтобы исключить рабочие ячейки, но результирующие выражения будут очень сложными и трудными для понимания и поддержки.

0

Обычные дни имеют только 24 часа, поэтому Excel начинает отсчет с 0 снова, как на часах. Это код формата "чч: мм", который используется по умолчанию для времени

Если вы хотите, чтобы часы накапливались более 24, вам нужно использовать соответствующий код формата: "[hh]:mm" - [ и ] вокруг часов делают их счет неограниченным.

Обратите внимание, что это работает и минуты - вы можете использовать "[mm]:ss" в качестве кода формата, который будет считаться минутами вечно.

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