Отформатируйте временной интервал как количество дней, часов и минут
Это вопрос исключительно на листке 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
Я думаю, что это должно сделать трюк, независимо от того, что у вас есть.