Пользовательский формат Excel: дата / время выписаны?

Я хочу отформатировать datetime в Excel 2010 для отображения примерно так:

1.234 ==> 1 день, 5 часов, 36 минут

Я знаю, как сделать что-то подобное для простых сценариев

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

[=1] d" day";d" days"

но это не работает с меткой.

для всего набора, я могу сделать:

d" days, "h" hours, "m" minutes"

но это выглядит смешно, когда одно из этих значений (часто дней) составляет 1.

Я не знаю, как соединить эти два понятия. Мне было бы очень приятно иметь

1 день, 5 минут

если значение часов равно 0, но

1 день, 0 часов, 5 минут

работает так же хорошо.

Я могу создать решение с помощью VBA / UDF, но на данный момент в книге нет другого кода, поэтому я хотел бы избежать этого маршрута, если это возможно. Я также знаю, что могу проанализируйте значение в другой ячейке следующим образом:

=DAY(A1) & IF(DAY(A1)=1," day"," days") & ", " & HOUR(A1) & IF(HOUR(A1)=1," hour"," hours") & ", " & etc...

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

действительно ли это возможно с условным числовым форматом, или я застрял с более длинным, затянутым методом?

26
задан Gaffi
28.11.2022 9:53 Количество просмотров материала 2781
Распечатать страницу

2 ответа

вы не можете сделать это с помощью custom формат чисел, он слишком сложен для простых условий, таких как [=1], и вы не можете использовать какие-либо функции в поле Тип.

вам нужна формула в отдельной ячейке. (Вы могли бы, я полагаю, скрыть исходный столбец.)

1
отвечен Andy G 2022-11-29 17:41

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

для отображения всех значений, включая 0 значения:

=DAY(A1) & IF(DAY(A1)=1," day"," days") & ", " & HOUR(A1) & IF(HOUR(A1)=1," hour"," hours") & ", " & MINUTE(A1) & IF(MINUTE(A1)=1," minute"," minutes") & ", " & SECOND(A1) & IF(SECOND(A1)=1," second"," seconds")

1.25001 : 1 day, 6 hours, 0 minutes, 1 second
2.25001 : 2 days, 6 hours, 0 minutes, 1 second
1.04167 : 1 day, 1 hour, 0 minutes, 0 seconds

чтобы удалить только конечные значения 0:

=DAY(A1) & IF(DAY(A1)=1," day"," days") & IF(HOUR(A1) + MINUTE(A1) + SECOND(A1)>0, ", " & HOUR(A1) & IF(HOUR(A1)=1," hour"," hours") & IF( MINUTE(A1) + SECOND(A1)>0, ", " & MINUTE(A1) & IF(MINUTE(A1)=1," minute"," minutes") & IF( SECOND(A1)>0, ", " & SECOND(A1) & IF(SECOND(A1)=1," second"," seconds"), ""), ""), "")

1.25001 : 1 day, 6 hours, 0 minutes, 1 second
2.25001 : 2 days, 6 hours, 0 minutes, 1 second
1.04167 : 1 day, 1 hour

если все 0 значений должны быть опущены, это будет работать:

=DAY(A1) & IF(DAY(A1)=1," day"," days") & IF(HOUR(A1) + MINUTE(A1) + SECOND(A1)>0, ", ", "") & IF(HOUR(A1)>0,HOUR(A1) & IF(HOUR(A1)=1," hour"," hours") & IF( MINUTE(A1) + SECOND(A1)>0, ", ", ""),"") & IF(MINUTE(A1)>0, MINUTE(A1) & IF(MINUTE(A1)=1," minute"," minutes") & IF( SECOND(A1)>0, ", ", ""),"") & IF(SECOND(A1)>0,SECOND(A1) & IF(SECOND(A1)=1," second"," seconds"),"")

1.25001 : 1 day, 6 hours, 1 second
2.25001 : 2 days, 6 hours, 1 second
1.04167 : 1 day, 1 hour
1
отвечен Gaffi 2022-11-29 19:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх