Найдите разницу между двумя временами и умножьте ее на значение

Я хочу рассчитать разницу между двумя временами, умноженными на значение в другом столбце. Мои колонки такие:

       Column A                Column B             Column C
1    09:00 - 21:00                 2                    

Я хочу, чтобы мой столбец C возвращал 24, поскольку разница во времени в столбце A составляет 12 часов, а множитель в столбце B равен 2.


person tohobaby    schedule 10.04.2015    source источник
comment
Более простой способ сделать это — разбить 09:00 - 21:00 на два отдельных столбца, когда вы читаете его из файла. И если вы делаете это полностью в Excel, то это определенно не подходит.   -  person Tim Biegeleisen    schedule 10.04.2015
comment
Если это не очевидно из приведенного ниже ответа, разница между временем в Excel измеряется днями. Вы захотите умножить на 24, чтобы получить часы.   -  person Byron Wall    schedule 10.04.2015


Ответы (2)


Пожалуйста, попробуй:

=B1*24*(MID(A1,FIND("-",A1)+2,LEN(A1))-LEFT(A1,5))
person pnuts    schedule 10.04.2015

Вот еще один подход, который использует TIMEVALUE() в случае, если ваше форматирование вокруг дефиса включает пробелы.

=(TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("-",A1)))-TIMEVALUE(LEFT(A1,FIND("-",A1)-1)))*24*B1

Как указано в комментарии выше, вам лучше иметь их в отдельных столбцах, но, тем не менее, эти формулы работают.

Если вы хотите вычесть время, разделенное на полночь (00:00), вы можете принудительно вычислить часы, используя формулу MOD(XXX, 24). Это предотвратит негатив. Это также означает, что разница никогда не может быть больше 24 (до умножения на столбец B).

=MOD((TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("-",A1)))-TIMEVALUE(LEFT(A1,FIND("-",A1)-1)))*24,24)*B1
person Byron Wall    schedule 10.04.2015
comment
Спасибо... Но когда я пытаюсь изменить столбец A на 21:00 - 1:00, он покажет отрицательное значение... как сделать так, чтобы результат возвращал 4? - person tohobaby; 10.04.2015
comment
На этом этапе вам придется сделать некоторые предположения о возможных значениях. Поскольку мы занимаемся арифметикой часов, это не так просто, как получение абсолютного значения. Один из вариантов — искать отрицательное значение и прибавлять 24 перед умножением на столбец B. Другой вариант (если мы согласны с тем, что время не может отличаться друг от друга более чем на 24 часа) — использовать оператор по модулю для принудительной арифметики с часами. Эта формула будет =MOD((TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("-",A1)))-TIMEVALUE(LEFT(A1,FIND("-",A1)-1)))*24,24)*B1 - person Byron Wall; 10.04.2015