Я пытаюсь отобразить время за 24 часа в Excel с помощью =TIME()
но когда значения превышают 24 часа, они отображаются неправильно. Например, у меня есть =TIME(27;42,81;49)
которое должно отображать 24:59. Вместо этого он отображается как 03:42. Я уже изменил формат на [чч: мм]. Это прекрасно работает при выполнении =SUM()
для 3 отдельных значений.
3 ответа
Официальная статья о TIME() предполагает, что он должен отображаться только 24 часа. Таким образом, отображение 03:42
будет правильным. Если вы хотите работать с произвольным числом часов, минут и секунд, вы, скорее всего, не сможете использовать эту функцию, а вместо этого, например, формат ячейки.
Функция 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")
В любом случае эти формулы могут быть объединены так, чтобы исключить рабочие ячейки, но результирующие выражения будут очень сложными и трудными для понимания и поддержки.
Обычные дни имеют только 24 часа, поэтому Excel начинает отсчет с 0 снова, как на часах. Это код формата "чч: мм", который используется по умолчанию для времени
Если вы хотите, чтобы часы накапливались более 24, вам нужно использовать соответствующий код формата: "[hh]:mm"
- [
и ]
вокруг часов делают их счет неограниченным.
Обратите внимание, что это работает и минуты - вы можете использовать "[mm]:ss"
в качестве кода формата, который будет считаться минутами вечно.