使用Microsoft Excel 2013计算工作时间


-1

我正在尝试开发一张表,该表将计算我们技术人员的响应时间。

在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列中,但格式不同。


因此,您的目标是产生G和H列中的值(相同值的不同表示)?
fixer1234 2014年

我们是否可以假设日期时间存储为日期/时间(而不是文本),并且显示的格式仅仅是您如何显示它们?
fixer1234 2014年

是否总是需要零件(或者是否可以没有日期/时间来订购/接收特定呼叫的零件)?是否可以在技术人员的午餐时间接听电话,而技术人员从午餐返回时就接听电话,或者技术人员接听电话并且仅在非午餐时间接听电话?通话是否可以在工作时间以外到达,还是只有技术人员接听电话并且仅在工作时间发生?
fixer1234

@ fixer1234第一个问题的答案是肯定的。G列将以hh:mm格式显示响应时间,而H列将以##。##格式显示相同的响应时间。
贾斯汀·海斯

@ fixer1234第一个问题的答案是肯定的。G列将以hh:mm格式显示响应时间,而H列将以##。##格式显示相同的响应时间。其次,日期时间将按照mm / dd / yy hh:mm AM / PM格式自定义为数字格式。第三,零件并非总是必需的,因此有时零件将没有任何值。如果在午餐时间接听电话,则直到午餐时间结束并且技术已恢复工作,响应时间才会开始。(希望我回答得足够清楚:))
贾斯汀·海斯

Answers:


0

此问题有很多可能的组合:

  • 相对于工作周,工作日和午餐到达的时间
  • 是否需要零件
  • 相对于工作周,工作日,午餐和电话到达提出零件请求时
  • 零件到达是跨越一个周末还是几个周末(如果没有)
  • 技术派遣与呼叫到达和/或技术派遣与部件到达是否跨越一个周末
  • 以上所有可能的组合和排列。

我看不到使用通用公式来计算事物的方法。看起来对于每种响应方案,您都需要准确地建模每个活动相对于工作周,工作日和午餐的发生时间,并添加和减去相关时间。规则变得非常复杂,并且无需处理假期,而假期将增加额外的维度。

从技术上讲,可以使用一个“公式”来执行此操作,但是它又长又复杂,以至于您永远无法对它进行故障排除或修改,也无法在事后理解它。因此,此答案将使用一堆构建块列(其中一些包含一些长公式),并且这些列会混合,匹配和重用。它将为修改事物提供基础。

我创建了我认为可以测试的最极端,最复杂的场景。该解决方案可能过于复杂,因为在现实生活中不会发生某些情况。欢迎您简化它。

构件块列

日期和时间
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

请注意,对于“无假期”情况,周末使用了不同的调整。这是因为我的极端测试用例包括:在呼叫到达和零件订购之间的一个周末,零件到达的长时间延迟,以及在零件到达和技术派遣之间的另一个周末。对于“无条件”场景,我只使用了整个时间,包括两个周末,因此需要使用公式来处理。如果您要解雇需要两周才能响应电话的任何技术人员,则如果希望保持一致性,可以将其更改为其他公式中使用的单周末调整类型。

合格时间
下一步是处理工作日时间表。我把问题分成三个间隔。

  • 第一天(相关时间从呼叫到达开始,并且可以有各种终点)
  • 最后一天(相关时间可以有不同的起点并以技术派遣结束)
  • 间隔天数(这些都是整天,周末需要调整)

所有活动都可能在一天或两天内发生,因此公式需要测试特定间隔是否存在以及是否尚未考虑。取决于是否需要订购零件,公式有所不同,因此每个间隔都有两个公式(所需零件是每个组中的第一个)。

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

您惊人的Excel技能点对了!我可以扔给它的所有东西都被准确地解决了!非常感谢您编译所有信息和方程式!!!!再次感谢您……这个项目永远不在我的办公桌上!再感谢一百万!
贾斯汀·海斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.