Спеціальний формат Excel: дата / час виписані?


1

Я хочу відформатувати дату в 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...

Але це доволі незграбно і вимагає проведення обчислень у новому наборі комірок, а не просто підключення до формату в поточному стовпці даних і виконання.

Чи реально це можливо за умовним форматом чисельності, або я затримуюся більш довгим, намальованим методом?


Я не думаю, що можна застосувати формулу до спеціального формату. А як щодо днів старше 31? Якщо ви спробували 32.234, ви отримаєте той самий результат, використовуючи весь набір.
wbeard52

Відповіді:


1

Ви не можете зробити це за допомогою спеціального формату чисел, це занадто складно для простих умовних умов, таких як [= 1], і ви не можете використовувати жодні функції у полі Тип.

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


1

Виходячи з відгуків тут, здається, що це занадто багато для простого формату. Натомість я пішов вперед і створив кілька формул, щоб створити це.

Щоб відобразити всі значення, включаючи всі 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.