Использование Microsoft Excel 2013 для расчета рабочих часов

667
Justin Hayes

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

В столбце C указано, когда был получен вызов, а в столбце F - время, когда специалист ответил. Столбцы D и E должны быть вычтены из общего времени отклика (поскольку технические специалисты не будут оштрафованы за заказ деталей). Обратите внимание, что не каждый вызов требует заказа деталей, в этом случае столбцы D и E будут пустыми. Я хотел бы, чтобы таблица исключала выходные и нерабочие часы (а обеденные перерывы исключались из времени ответа). Если звонок поступает в нерабочее время или во время обеда, он вводится как происходящий во время следующего возобновления работы.

Я пытался понять эту страницу, но не могу этого сделать.

column A: customer Column B: WO# Column C: call received (mm/dd/yy hh:mm am/pm) column D: parts ordered (mm/dd/yy hh:mm am/pm) column E: parts received (mm/dd/yy hh:mm am/pm) column F: dispatch time (mm/dd/yy hh:mm am/pm) column G: response time (hh:mm)  column H: response time (converted to fractional hours i.e. 2:15 would display in this column as 2.25)  business hours (j2: 8:00 am) (j3: 5:00 pm) lunch break (j5: 12:00 pm) lunch break end (j6: 1:00 pm) 

Все даты и время вводятся как значения даты / времени в Excel. Результат, который я ищу, это время отклика. То же значение появится в столбцах G и H, но отформатировано по-разному.

-1
Итак, ваша цель состоит в том, чтобы получить значения в столбцах G и H (разные презентации одного и того же значения)? fixer1234 9 лет назад 0
Можем ли мы предположить, что время и дата хранятся в виде даты / времени (а не текста), а показанные форматы соответствуют тому, как вы их отображаете? fixer1234 9 лет назад 0
Всегда ли требуются запчасти (или не может быть никаких дат / времени для заказа / получения деталей для определенного вызова)? Можно ли принять вызов в обеденное время технического специалиста, а технический специалист получает его по возвращении с обеденного или технический специалист принимает вызов и принимает вызовы только тогда, когда не в обеденный перерыв? Могут ли звонки когда-либо поступать в нерабочее время или это вызов получает техник, и это происходит только в рабочее время? fixer1234 9 лет назад 0
@ fixer1234 ответ на ваш первый вопрос - да. В столбце G будет отображаться время отклика в формате чч: мм, а в столбце H будет отображаться то же время отклика, но в формате ##. ##. Justin Hayes 9 лет назад 0
@ fixer1234 ответ на ваш первый вопрос - да. В столбце G будет отображаться время отклика в формате чч: мм, а в столбце H будет отображаться то же время отклика, но в формате ##. ##. Во-вторых, время даты будет отформатировано как число в соответствии с форматом мм / дд / ггг чч: мм AM / PM. В-третьих, детали НЕ всегда требуются, поэтому иногда детали не имеют каких-либо значений. Если вызов поступил в обеденный перерыв, то время отклика не начнется, пока не закончится обеденный перерыв, и техник вернется к работе. (надеюсь, я ответил, что достаточно ясно :)) Justin Hayes 9 лет назад 0
звонки можно принимать в нерабочее время, однако они будут введены в 8:00 утра следующего рабочего дня. Итак, ради таблицы я бы сказал, что НЕТ, звонки никогда не приходят в нерабочее время, поскольку они вводятся как поступающие в 8:00 утра следующего рабочего дня ... Justin Hayes 9 лет назад 0
Можно ли добавить колонку праздников? если это так, я бы построил свой отпуск в столбце L ... извините за последний второй кривой мяч Justin Hayes 9 лет назад 0
Я играл с этим, прежде чем вы отправили свои комментарии просто из любопытства. Возможно, я неправильно смотрю на доступные функции, но это выглядит намного сложнее, чем кажется на первый взгляд. В Excel есть «идеальная» функция для этого (WORKDAY). К сожалению, это работает наоборот. Вы начинаете с даты, добавляете нужное количество рабочих дней и выводите новую дату, пропуская выходные и праздничные дни. Мне не известна встроенная функция, которая вычитает выходные и праздничные дни для получения рабочих дней. Похоже, вам нужно целое приложение, а не формула. fixer1234 9 лет назад 0
Я придумал что-то, что приближается к тому, что вы хотите, но это будет очень длинный ответ, и я напишу это, если позволит время. Надеюсь, это поможет вам. Вы должны будете изменить его в праздничные дни, что будет рассматриваться как отдельный вопрос о SU. Проблема этого комплекса действительно выходит за рамки предполагаемого вопроса здесь. Вопросы предназначены для того, чтобы вы делали это сами и столкнулись с конкретной проблемой, связанной с одной функцией в вашей формуле. Однако нет смысла тратить впустую то, что уже сделано. fixer1234 9 лет назад 0

1 ответ на вопрос

0
fixer1234

Эта проблема имеет огромное количество возможных комбинаций:

  • когда звонки поступают относительно рабочей недели, рабочего дня и обеда
  • требуются ли запчасти
  • когда запрос запчастей размещен относительно рабочей недели, рабочего дня, обеда и прибытия звонка
  • будь то прибытие запчастей на выходные или даже на несколько выходных, если они недоступны
  • будь то техническая отправка или прибытие звонка и / или техническая отправка или прибытие запчастей в выходные
  • все возможные комбинации и перестановки вышеперечисленного.

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

Технически возможно сделать это с помощью одной «формулы», но она будет настолько длинной и сложной, что вы никогда не сможете ее устранить, изменить или осмыслить. Поэтому в этом ответе будет использоваться набор столбцов строительных блоков (некоторые из которых содержат несколько длинных формул), и они смешиваются, сопоставляются и используются повторно. Это послужит основой для изменения вещей.

Я создал самый экстремальный, запутанный сценарий, который только мог придумать, чтобы проверить его. Возможно, что это решение слишком сложное, потому что есть некоторые ситуации, которые не встречаются в реальной жизни. Вы можете упростить это.

Строительный блок колонн

Days & Times
Excel хранит дату / время как одно число. Часть целых чисел - это число дней, а дробная часть - время как десятичная дробь дня. Различные части формул должны использовать только дни или просто времена, поэтому первые восемь строительных блоков разделяют их. Столбцы Kчерез Nдни для колонн Cчерез Fи колонны Oчерез Rте времена. Не имеет большого значения, как вы форматируете эти столбцы. Формулы приведут к числам (дни будут просто числа 42000, времена будут десятичные дроби - полдень или 12 часов будет 0,5). Предполагая, что ваши данные начинаются со строки 2:

K2: =INT(C2) L2: =INT(D2) M2: =INT(E2) N2: =INT(F2) O2: =MOD(C2,1) P2: =MOD(D2,1) Q2: =MOD(E2,1) R2: =MOD(F2,1) 

Необработанные сроки и время заказа деталей
Существует несколько способов обработки времени заказа деталей. Один из них - рассчитать продолжительность и вычесть ее. В этой проблеме это добавляет еще одну сложность, потому что вы не хотите удваивать количество исключений для обеда или выходных. Я использовал другой подход, разбивая проблему на две части в тех случаях, когда заказываются детали - что происходит до заказа деталей и что происходит после получения деталей; все время между игнорированием.

Это требует трех длительностей:

  • получение звонка на заказ запчастей
  • получение деталей в техническую отправку
  • позвоните в службу технической поддержки в тех случаях, когда запчасти не требуются

Некоторые формулы требуют фактического истекшего времени, другие требуют количества дней независимо от времени суток, поэтому существует шесть столбцов строительных блоков. Эти длительности вычитают любые выходные. Я предположил, что выходные могут произойти между получением вызова и размещением заказа на запчасти (звонок поступает в конце дня в пятницу), или между получением части в конце пятницы и технической отправкой в ​​понедельник. Столбцы Sчерез U- фактическое прошедшее время. Столбцы Vчерез Xэто количество дней.

S2: =D2-C2-IF(WEEKDAY(C2,2)+L2-K2>5,2,0) T2: =F2-E2-IF(N2-M2+WEEKDAY(E2,2)>5,2,0) U2: =F2-C2-INT((N2-K2+WEEKDAY(C2,2))/7)*2 V2: =L2-K2-IF(WEEKDAY(C2,2)+L2-K2>5,2,0) W2: =N2-M2-IF(N2-M2+WEEKDAY(E2,2)>5,2,0) X2: =N2-K2-INT((N2-K2+WEEKDAY(C2,2))/7)*2 

Обратите внимание, что для случая отсутствия деталей используется другая настройка для выходных. Это связано с тем, что мой экстремальный тестовый случай включал выходные между прибытием звонка и заказом запасных частей, большую задержку с доставкой деталей и еще один выходной между прибытием запасных частей и технической доставкой. Для сценария «без запчастей» я просто использовал все время, включая два выходных, поэтому формула должна была справиться с этим. Если вы задействуете любого специалиста, которому для ответа на вызов потребовалось две недели, вы можете изменить его на тот же тип корректировки на выходные дни, который используется в других формулах, если вы хотите согласованности.

Отборочные времена
Следующим шагом является работа с временными рамками рабочего дня. Я разбил проблему на три интервала.

  • Первый день (соответствующие времена начинаются по прибытии звонка и могут иметь различные конечные точки)
  • Последний день (соответствующие времена могут иметь различные начальные точки и заканчиваться технической отправкой)
  • Days Between (это все целые дни и нуждаются в корректировке на выходные)

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

First Day Y2: =IF(L2=K2,IF(M2=K2,IF(N2=K2,R2-Q2+P2,$J$3-Q2+P2),P2),$J$3)-O2 Z2: =IF(N2=K2,R2,$J$3)-O2  Last Day AA2: =IF(M2=N2,IF(L2=N2,IF(K2=N2,0,P2-$J$2+R2-Q2),R2-Q2),R2-$J$2) AB2: =IF(K2=N2,0,R2-$J$2)  Days Between AC2: =IF(L2=K2,0,IF(M2=L2,IF(N2=L2,0,$J$3-Q2+P2-$J$2+(L2-K2-1-INT((L2-K2+WEEKDAY(C2,2))/7)*2)* ($J$3-$J$2)),P2-$J$2+(L2-K2-1-INT((L2-K2+WEEKDAY(C2,2))/7)*2)*($J$3-$J$2)))+ IF(M2=L2,0,IF(N2=M2,0,$J$3-Q2+(N2-M2-1-INT((N2-M2+WEEKDAY(E2,2))/7)*2)*($J$3-$J$2))) AD2: =IF(N2-K2>1,N2-K2-1-INT((N2-K2+WEEKDAY(C2,2))/7)*2,0)*($J$3-$J$2) 

Обратите внимание, что я разделил длинную формулу для удобства чтения. Если вы хотите скопировать и вставить, вам нужно будет удалить возврат каретки и лишние пробелы.

Обеденные перерывы
Корректировки обеденных перерывов определяют, в какие дни имеются применимые перерывы на обед, подсчитывают их и умножают количество на сохраненную спецификацию перерывов на обед. Опять же, требуемый для деталей случай первый:

AE2: =(IF(S2>$J$5-O2,1,0)+IF(S2>P2-$J$6,1,0)+IF(V2>=2,V2-1,0)+IF(T2>$J$5-Q2,1,0)+IF(T2>R2-$J$6,1,0)+IF(W2>=2,W2-1,0))*($J$6-$J$5) AF2: =(IF(U2>$J$5-O2,1,0)+IF(U2>R2-$J$6,1,0)+IF(X2>=2,X2-1,0))*($J$6-$J$5) 

Время технического отклика Время
отклика - это выбор подходящего набора чисел для объединения (требуются ли детали) и объединение элементов. Ячейка G2:

G2: =IF(ISBLANK(D2),Z2+AB2+AD2-AF2,Y2+AA2+AC2-AE2) 

Используйте пользовательский формат. Под форматами выберите формат времени, который близок, а затем настройте его в окне настройки. Вы можете использовать что-то вроде hh:mmили hh"h "mm"m", что даст результат, как 03h 47m.

В столбце H вы хотите часы и десятичные часы. Я не делаю много времени форматирования в Excel, но кажется, что встроенные форматы любят работать только с целыми часами. Если я не прав, возможно, кто-то еще сможет отредактировать этот ответ с лучшим подходом к форматированию. Я просто преобразовал бы сохраненное число в часы и затем отформатировал бы его как число с желаемым количеством десятичных знаков:

H2: =G2*24 

Это преобразует десятичную дробь дня в часы.

При необходимости вы можете скопировать этот ряд формул вниз по странице. Если вы не хотите смотреть на столбцы строительного блока, скройте эти столбцы.

Ничего себе, это много, чтобы переварить ... Я буду работать с этим уравнением сегодня вечером .., еще раз спасибо за быстрый ответ ... Justin Hayes 9 лет назад 0
Ваши удивительные навыки превосходства были прямо на месте! все, что я мог бросить в это было решено точно! СПАСИБО ОГРОМНОЕ ЗА СОСТАВЛЕНИЕ ИНФОРМАЦИИ И УРАВНЕНИЙ !!!! Еще раз спасибо ... этот проект с моего стола навсегда! Еще миллион спасибо! Justin Hayes 9 лет назад 0