Excel 计算时间段是否包含在开始和结束时间内

Excel 计算时间段是否包含在开始和结束时间内,excel,excel-formula,Excel,Excel Formula,我有一个问题,我试图在Excel中计算提供的工作时间段的任何部分是否包含在用户定义的指定夜间工作时间段内,例如2330-0559或0000-0630 如果我提供了我想要的工作职责时间,并且职责的任何部分在规定的期限内,则需要确定。例如,2230-0630工作时间在上述两个示例中 我可以尝试一些不同的解决方案,但仍然没有找到正确的解决方法。 也许有人能帮忙。我还知道excel中的24:00用于一天结束时的午夜,00:00用于一天开始时的午夜,因为excel在一天中从0到1工作 =OR(MOD(A

我有一个问题,我试图在Excel中计算提供的工作时间段的任何部分是否包含在用户定义的指定夜间工作时间段内,例如2330-0559或0000-0630

如果我提供了我想要的工作职责时间,并且职责的任何部分在规定的期限内,则需要确定。例如,2230-0630工作时间在上述两个示例中

我可以尝试一些不同的解决方案,但仍然没有找到正确的解决方法。 也许有人能帮忙。我还知道excel中的24:00用于一天结束时的午夜,00:00用于一天开始时的午夜,因为excel在一天中从0到1工作


=OR(MOD(A5,1)>$E$2,MOD(A5,1)我将分钟数作为十进制,并用它从“工作开始时间”和“工作结束时间”创建一个有效范围

检查您是否能理解以下内容:

下面是一个例子:


更新:很抱歉没有解释。在这里,我尽力澄清我是如何做到的

转化 首先,我尝试将任何时间转换为分钟,所以00:00是0分钟,01:00是60分钟,24:00(excel显示00:00)是1440分钟,25:00(excel显示01:00)是1500分钟

我用CONVERT(E2,“day”,“mn”)
进行的转换,它将日转换为分钟

范围规范化和包含 现在,每个范围都必须标准化,这意味着“结束”必须始终大于“开始”。对于00:00到06:00,这很好,但是对于22:00到06:00,它需要进行调整。因此,如果“开始”大于“结束”,那么我在“结束”上加上1440分钟(24小时)。如果(A6>B6,1440,0),我会这样做

然后,您需要查看任何“工作范围”是否包含“夜间范围”。这通常通过公式
完成。如果(DutyEnd>NightStart和dutystart

挑战1 这是主要的概念。但是如果你尝试比较24:00-06-00中包含的00:00-06:00这样的范围,它是不起作用的。这是因为转换的分钟数是0-360和1440-1830,它们彼此不包含

在E3中,为了解决这个问题,我用模(
MOD()
)减少1440,然后
MOD(14401440)
=0。因此,即使使用25:00或52:00这样的值,它们也会减少到最小的分钟数。例如,25:00(1500分钟)=1:00=60分钟,52:00(3120分钟)=4:00=240分钟

挑战2 我们还有另一个挑战,可能的比较如下:

  • 00:00-06:00包含在00:00-06:00中,以分钟为单位是0-390包含在0-390中
  • 00:00-06:00包含在22:00-06:00中,以分钟为单位为0-390包含在1320-1830中
  • 22:00-06:00包含在00:00-06:00中,以分钟为单位是1320-1830包含在0-390中
最后两个不匹配。因此,在“包含”列(例如:E6)中,我将与“夜间标准”-1400和+1400进行比较


希望有点清楚。让我知道其他情况。

好吧,我想我遗漏了一些东西,但让我们看看这是否适用于您。要使这项工作起作用:

  • 所有小时必须以
    hh:mm
    格式键入
  • Night Criteria End
    必须在不同的日期。这意味着必须在
    00:00
    结束,否则公式将不起作用。如果键入内容 像
    开始标准=22:00
    夜间标准=23:50
    ,两次 会在同一天,所以公式不起作用
  • 此公式仅在24小时内有效。如果任何时候标准之间的差异超过24小时,公式将不起作用 对
  • 现在,我这样回复你的数据:

    这里的技巧是处理没有日期的时间。Excel中的日期是înteger数,小数部分是小时/分/秒。因此,要正确比较这样的小时,需要添加一个整数部分

    让我解释一下。在Excel中,
    18:00
    将是0,75。
    06:00
    将是0,25。如果您尝试获取这两个时间之间的差异,您将得到
    -0,5
    。十进制是有意义的,但在尝试转换为时间时,Excel没有意义。因此,正如我前面所说,这里的技巧是添加整数(在这种情况下,因为06:00小于18:00,我们将添加+1),所以Excel将使1,25-0,75=0,5。Excel可以将0,5转换为小时,并且它将精确返回12小时,这是正确的结果

    所以知道了这一点,数据公式中的诀窍是比较结束和开始,并添加1或2以与标准进行适当比较。这样Excel可以确定时间是晚于还是早于标准

    我所有的公式都是这样的:

  • 长度:
    =IF(B5

    理解EXCEL中的日期和时间

    excel中的日期存储为整数。它们表示自1900/01/1起的日期,该日期为1

    时间以小数形式存储,表示一天的小数点。24小时是1,0.5是中午12点。等等

    换句话说,小数点左边的都是日期,右边的都是时间

    只是利用时间过午夜

    从早起时间比前一天晚些时候少的观点来看,这是有问题的。事实上,早起时间比前一天晚些时候大。在我们的头脑中,我们做的是心算,知道第二天是第二天,但我们忽略了日期方面

    纠正这一问题的一个快速方法是将日期添加到时间中。通过数学计算,生活会变得更加轻松。但是,您可能不想将完整日期添加到开始和结束时间中。假设开始和结束时间不超过24小时,简单的解决方法是在结束时间小于开始时间时,在结束时间中添加1.这意味着是第二天

    它是你职业生涯的榜样
    =B6+(B6<=A6)
    
    =C6-A6
    
    =AND(A6<1,C6>=1)
    
    =OR(A6>$F$2,A6<$G$2)
    
    =OR(B6>$F$2,B6<$G$2)
    
    COLUMN H
    =AND(A6<=$F$2,C6>$F$2)
    
    COLUMN I
    =AND(A6<$G$2+1,C6>$G$2+1)
    
    COLUMN J
    =OR(F6,G6,H6,I6)
    or
    =(F6+G6+H6+I6)>=1