Я не знаю ни одного "стандартного" формата даты / времени, встроенного для удобного форматирования таким образом, так что да, ваша попытка создания пользовательского формата кажется подходящей.
Однако причина, по которой он не работает для вас, заключается в том, что значения времени не выражаются в секундах, как вы предполагаете, - они хранятся в десятичном значении, где 1 - 24 часа.
Таким образом, вы должны использовать десятичные значения, эквивалентные желаемым точкам останова.
К сожалению, кажется, что Excel ограничивает количество точек останова тремя, поэтому я не могу получить дополнительные точки останова для "1 минуты" (единственного числа) и т.д. Даже если бы было больше точек останова, вы никогда не могли бы достичь "N часов", потому что вы бы нужны бесконечные точки останова (нет условия, которое обнаруживает компонент с нулевой минутой).
Итак, самое близкое, что я могу получить с пользовательским форматом:
[<0.000694]"0 minutes";[<0.041666][m] "minutes";h "hours", m "minutes"
Что дает следующее:
00:00:00 0 minutes
00:01:00 1 minutes
00:02:00 2 minutes
00:03:00 3 minutes
01:00:00 1 hours, 0 minutes
01:01:00 1 hours, 1 minutes
02:00:00 2 hours, 0 minutes
02:01:00 2 hours, 1 minutes
01:03:00 1 hours, 3 minutes
23:59:59 23 hours, 59 minutes
Возможно, я бы вместо этого предложил написать функцию VBA и отформатировать поле в формуле.
Но также я бы посоветовал вам подумать, должно ли значение быть временем в первую очередь. Хранение истекшего периода будет лучше в определенной единице (например, в вашем случае, в минутах). У вас по-прежнему не может быть бесконечных точек останова, но вы избежите очевидной проблемы с вышеперечисленным - она переносится через 23 часа 59 минут.
РЕДАКТИРОВАТЬ: Для удовольствия я сделал формулу, которая дает желаемые результаты. Это не тот формат, который требует ваш вопрос, но поскольку он не дал желаемого результата, я подумал, что это может быть хорошей альтернативой:
=if(hour(a1)=0,if(MINUTE(A1)=0,"0 minutes",if(minute(a1)=1,"1 minute",minute(a1) & " minutes")),if(hour(a1)=1,if(MINUTE(A1)=0,"1 hour",if(minute(a1)=1,"1 hour, 1 minute","1 hour, " & minute(a1) & " minutes")),if(MINUTE(A1)=0,hour(A1) & " hours",if(minute(a1)=1,hour(A1) & " hours, 1 minute",hour(A1) & " hours, " & minute(a1) & " minutes"))))
00:00:00 0 minutes
00:01:00 1 minute
00:02:00 2 minutes
00:03:00 3 minutes
01:00:00 1 hour
01:01:00 1 hour, 1 minute
02:00:00 2 hours
02:01:00 2 hours, 1 minute
01:03:00 1 hour, 3 minutes
23:59:59 23 hours, 59 minutes