Хотите отформатировать секунду в дд: чч: мм: сс, чтобы удалить нулевые значения для удобочитаемости в Excel 2016 - PullRequest
0 голосов
/ 12 июля 2019

У меня есть решение для преобразования секунд в правильное значение xx Дни yy Часы zz Минуты aa Секунды, и я хочу узнать, как выводить значения и метки, если значение равно 00.

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

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

=TEXT(G2/(24*60*60),"dd \D\a\y\s hh \H\o\u\r\s mm \M\i\n\u\t\e\s ss \S\e\c\o\n\d\s")

60 (как мои исходные секунды) в выходных данных встречается как 00 дней 00 часов 01 минут 00 секунд.Я хочу сказать, 01 минут с другими значениями удалены.12600 (как мои исходные секунды) отображаются на выходе как 00 дней, 03 часа, 30 минут, 00 секунд.Я хочу сказать, что 03 часа 30 минут с другими значениями удалены.

1 Ответ

0 голосов
/ 12 июля 2019

Вы должны будете использовать = Concatenate (If (......)) для достижения этой цели. Просто для демонстрации я добавил еще 4 столбца, каждый для дня, часа, минуты и секунды, а затем объединил их в один. Мои данные в ячейке C2. И формулы ниже:

Cell H2 : =TEXT(C$2/(24*60*60),"dd")
Cell I2 : =TEXT(C$2/(24*60*60),"hh")
Cell J2 : =TEXT(C$2/(24*60*60),"mm")
Cell K2 : =TEXT(C$2/(24*60*60),"ss")

Приведенные выше четыре просто извлекают фактическое количество дней / часов / минут / секунд. И следующие четыре добавят к нему суффикс в зависимости от того, является ли значение нулевым или ненулевым.

Cell L2 : =CONCATENATE(IF(H2<>"00",CONCATENATE(H2," days"),""))
Cell M2 : =CONCATENATE(IF(I2<>"00",CONCATENATE(I2," hours"),""))
...
...

Наконец, просто соедините L2 через O2 для достижения желаемого результата.

=CONCATENATE(L2," ", M2," ",N2," ",O2)

Возможно, вы захотите загрузить демонстрационную реализацию с здесь .

...