Как использовать «если содержит»? - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать планировщик для работы, и у меня есть выпадающий список часов, в которых сотрудники работают в одном столбце, и я хочу, чтобы он отображал, сколько часов это рядом с этим. I.e.:

Column B (Selected from a drop down menu)   Column C  
6:00 - 14:30                                to display 8 as it is an 8 hour shift   
10:00 - 15:00                               to display 5 as it is an 5 hour shift

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Создайте таблицу со столбцом для смен (это может быть список, используемый для проверки, если вы выбрали этот метод) и столбец непосредственно справа от соответствующей продолжительности смены. Я назвал эту таблицу Larry. Затем в C2 (при условии, что ваш первый выпадающий список находится в B2):

  =ArrayFormula(vlookup(B1:B,Larry,2,0))
0 голосов
/ 28 июня 2018

Итак, для ясности, я собираюсь развить этот шаг за шагом, в нескольких столбцах. Они могут быть объединены в одну непроницаемую формулу, но это не поможет вам следовать. Вы можете сделать то, что я предлагаю, а затем скрыть столбцы с расчетом. Предположим, ваше время указано в столбце А. Вы можете сделать следующее в первой строке (у меня предполагается строка 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...