首页 > 解决方案 > Excel。日期和时间 = 轮班 X

问题描述

我有一个格式为日期和时间的单元格:(dd-mm-yyyy tt:mm)
基于此,我想提取在我的 excel 文件中生成数据的班次。

换班时间如下

标签: exceldatetimeif-statementvlookupweekday

解决方案


我认为这样做的方法是设置一个表格,其中包含各种参数的列,以及工作日的计算列。

我为表命名Shifts并使用结构化引用以便于维护和将来理解,但如果必须,您可以使用常规引用。

班次表

在此处输入图像描述

E2中的公式:

=MATCH([@Day],{"Sunday";"Monday";"Tuesday";"Wednesday";"Thursday";"Friday";"Saturday"},0)

在给定时间戳的情况下,将返回 Shift 的公式:

=IFERROR(
       LOOKUP(2,1/(
              (MOD(timeStamp,1)>=Shifts[startTime])*
              (MOD(timeStamp,1)<=Shifts[endTime])*
              (WEEKDAY(timeStamp)=Shifts[wdNum])),Shifts[Shift]),
      "Overtime")

随机结果

在带有结构化引用的表中使用公式

=IFERROR(
       LOOKUP(2,1/(
              (MOD([@timeStamp],1)>=Shifts[startTime])*
              (MOD([@timeStamp],1)<=Shifts[endTime])*
              (WEEKDAY([@timeStamp])=Shifts[wdNum])),Shifts[Shift]),
      "Overtime")

在此处输入图像描述


推荐阅读