Итак, для ясности, я собираюсь развить этот шаг за шагом, в нескольких столбцах. Они могут быть объединены в одну непроницаемую формулу, но это не поможет вам следовать. Вы можете сделать то, что я предлагаю, а затем скрыть столбцы с расчетом.
Предположим, ваше время указано в столбце А. Вы можете сделать следующее в первой строке (у меня предполагается строка 1, если у вас есть заголовки, возможно, строка 2), а затем скопировать формулы вниз. В столбце B я поместил =search("-",A1)
, который сообщает, где находится знак -. В столбце C я нахожу первый раз в виде строки с =left(A1,B1-2)
, которая принимает первые символы за 2 до тире. В столбце D у меня есть =mid(A1,B1+2,5)
, который занимает от 2 символов после тире до конца (если длина всего 4 символа, он копирует 4, а не 5), и, наконец, в столбце E мы находим желаемый результат с =HOUR(timevalue(D1)-timevalue(C1))
.
Это делает то, что вы просили. Если вы хотите добавить минуты, вы можете использовать =MINUTE(timevalue(D1)-timevalue(C1))
. Наконец, если существует смена кладбища с 22:00 до 6:00, вам необходимо добавить логику для этого.
Вы также можете упростить вычисление строки в столбце B, используя формулу =split(A1,"-")
, а затем поставить =HOUR(timevalue(C1)-timevalue(B1))
И поэтому, если вы действительно хотите одну формулу, это может быть =hour(INDEX((split(A1,"-")),2)-INDEX((split(A1,"-")),1))
, которая вычитает первую часть из второй и конвертирует в часы.
Если со временем вы захотите обработать упаковку около полуночи, то =iferror(hour(INDEX((split(A1,"-")),2)-INDEX((split(A1,"-")),1)),24-hour(INDEX((split(A1,"-")),1)-INDEX((split(A1,"-")),2)))
сделает свое дело.
ОБНОВЛЕНИЕ: Листы распознают времена, которые возникли в результате разделения, как раз. Так что если в B1 вы поставите =split(A1,"-")
, D1 может содержать =C1-B1
, если вы хотите сохранить минуты. Он даже дает правильный ответ на 22:00 - 2:00.