Отформатируйте временной интервал как количество дней, часов и минут

Это вопрос исключительно на листке Excel.

У меня есть временной интервал, который в основном представляет собой разницу между двумя ячейками, каждая из которых содержит дату:

Мне удалось получить разницу во времени в количестве часов и минут, изменив формат номера на [h]:mm. Теперь я хотел бы получить разницу в количестве дней, часов и минут. Я попытался установить формат номера [d]:[h]:[mm], но он не принят в Excel.

Вот что у меня сейчас:

    A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    79:50
2|  14/10/2011 00:00    17/10/2011 11:00    83:00

Вот что я хотел бы получить:

    A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    3:7:50
2|  14/10/2011 00:00    17/10/2011 11:00    3:11:00

Как я могу это сделать? Есть ли формат номера для этого?

Ответы

Ответ 1

Вы можете использовать TEXT
= TEXT(B1-A1,"d:h:mm")

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

  • выберите диапазон (ячейки C1, C2 и т.д.)
  • щелчок правой кнопкой мыши и форматирование ячеек
  • Пользовательские
  • Тип d:hh:mm

Если в отличие от ваших данных примера, ваши расхождения по дате превышают 31 день, тогда такой подход, как =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
будет работать

Ответ 2

Внимание: вышеперечисленное работает только для диапазонов менее 31 дня. используйте

=CONCATENATE(TEXT(FLOOR(B1-A1,1),"@")," Days",TEXT(B1-A1," h:mm:ss"))

вместо диапазонов выше 31 дня. Это не будет хорошо сортироваться, поэтому было бы лучше сделать расчет в одном столбце, а затем префикс этого столбца для конечного результата.

Ответ 3

Следующее, конечно, не кратчайшая формула, а не прямой ответ на вопрос, но работает, чтобы показать правильный результат (также на LibreOffice) в следующем формате:

# days ## hours ## minutes ## seconds

=CONCATENATE(TEXT(FLOOR(B2-A2,1),"@")," days ", IF(HOUR(A12)-HOUR(A11)<0,HOUR(A12)-HOUR(A11)+24,HOUR(A12)-HOUR(A11))," hours ",IF(MINUTE(A12)-MINUTE(A11)<0,MINUTE(A12)-MINUTE(A11)+60,MINUTE(A12)-MINUTE(A11)), " minutes ", TEXT(B2-A2,"s"), " seconds")

Ответ 4

Также работает следующий подход, предполагая, что ваша дата начала находится в ячейке C2, а ваша дата окончания находится в ячейке D2:

 =TEXT((D2-C2)-MOD(D2-C2,1),"0") & " days " & TEXT(MOD(D2-C2,1),"hh:mm")

Ответ 5

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

0:h:m

будет билет. Однако, если для интервалов в 32 дня или более вас удовлетворяет только отображение количества (дробных) дней, вы можете использовать собственный формат, например:

[>=32] 0.00 "days"; d:h:m

Значение ячейки остается числовым.

Ответ 6

=IFERROR(INT(Date1-Date2)&" Days "&INT(MOD((Date1-Date2);INT(Datw1-Date2))*24)&" Hours "&MINUTE(Fate1-Date)&" Min";IFERROR((Date1-Date2);"NA"))enter code here

Я думаю, что это должно сделать трюк, независимо от того, что у вас есть.