То, что у вас сейчас, работает не по той причине.
Очевидно, что E48 - это количество часов, поэтому C8 , который содержит =E48/24 , - это количество дней.
Если E48 находится между 0 и 24, то C8 будет между 0 и 1, выражая часть дня.
Это соответствует способу хранения даты / времени в Excel - дата / время сохраняются как количество дней (включая часть дня, если необходимо) с полуночи 1 января 1900 года.
Вот почему C8 правильно отображается как количество часов и минут, соответствующее количеству часов в E48 .
Но если E48 находится в диапазоне от 0 до 24, а C8 находится в диапазоне от 0 до 1, то 24-C8 - это число от 23,0 до 24,0.
В частности, если (как в вашем примере) E48 - 15,5, то C8 - 0,645833333, а C9 - 23,35416667.
Поскольку C8 выражает количество дней, 24 интерпретируется как количество дней.
Если вы измените формат C8 и C9 на пользовательский формат d "days and" h:mm , вы увидите, что для E48 = 15,5 C8 будет 0 days and 15:30 а C9 будет 23 days and 8:30
Итак, две вещи:
- Поскольку
C8 - это количество дней, вы хотите, чтобы C9 был =1-C8 - вычисляя остаток дня, а не смотря на 24-дневный период.
В формате отображения ячейки Excel для значения даты / времени токены h (и hh), mm , ss и AM/PM смотрят только на дробную часть значения, т. Е. На долю дня, которая соответствует время суток.
(Обратите внимание, как значение 23.35416667 отображается как 23 days and 8:30 ; 8:30 соответствует дроби 0.35416667.)
Пустой E48 , конечно, интерпретируется как значение 0, и будет приводить к тому, что C8 будет иметь значение 0.
С C9 установленным на =1-C8 , он будет равен 1.
Если у вас все еще есть C9 отформатированный как d "days and" h:mm , вы увидите, что он отображается как 1 days and 0:00 , что, конечно, эквивалентно 24 часам.
Чтобы он отображался как 24:00 , вам нужно использовать [h] в формате вместо простого h ; т.е. используйте формат [h]:mm вместо простого h:mm .
Токен [h] просматривает все значение в ячейке (не только дробную часть) и отображает часы ≥24.