【问题标题】:Two Separate Ranges of Business Hours (Like Shifts) Between Date Ranges日期范围之间的两个独立的营业时间范围(如班次)
【发布时间】:2021-06-09 10:30:11
【问题描述】:

我遇到了一个两难境地,我以为我可以轻松克服,但最终得到了不同的结果。

所以我一直在使用以下公式:

=(NETWORKDAYS(H6,N6)-1)*($F$2-$E$2)+IF(NETWORKDAYS(N6,N6),MEDIAN(MOD(N6,1),$F$2,$E$2),$F$2)-MEDIAN(NETWORKDAYS(H6,H6)*MOD(H6,1),$F$2,$E$2)

这个公式非常有效,因为我已将其修改为使用 NETWORKDAYS.INTL,因为所有工作日都是工作日,但工作时间是上午 8:00 到晚上 11:00。

我修改后的代码是:

=(NETWORKDAYS.INTL([@[DC_CREATION_DATE]],[@[ACTUAL_END_DATE]],"0000000")-1)*(upper-lower)
+IF(NETWORKDAYS.INTL([@[ACTUAL_END_DATE]],[@[ACTUAL_END_DATE]],"0000000"),MEDIAN(MOD([@[ACTUAL_END_DATE]],1),upper,lower),upper)
-MEDIAN(NETWORKDAYS.INTL([@[DC_CREATION_DATE]],[@[DC_CREATION_DATE]],"0000000")*MOD([@[DC_CREATION_DATE]],1),upper,lower)

地点:

  • DC_CREATION_DATE = 开始日期
  • ACTUAL_END_DATE = 结束日期
  • upper = 包含结束时间的命名范围,即晚上 11:00
  • lower = 包含开始时间的命名范围,即上午 8:00

现在的问题是,对于特定的月份,一天的工作时间变成了轮班:

  • 开始时间 1 = 上午 11:00
  • 结束时间 1 = 下午 5:00
  • 开始时间 2 = 晚上 9:00
  • 结束时间 2 = 凌晨 2:00

上述时间以外的时间均为非工作时间。我们收到的 TT 可以在工作时间之外,但我只会计算工作时间内的持续时间。

我尝试做的是在同一日期范围内使用相同的公式两次(第一次,上限变为下午 5:00,下限变为上午 11:00,结果存储在单元格中,第二次,上限变成 2:00 AM 和更低变成 9:00 PM 并且结果存储在不同的单元格中),然后将两个结果添加到单独的单元格中以获得工作时间范围之间的总体工作时间。

唉,我认为这很简单,但我看到的是不同的结果,这两个公式在运行时。 因为如果时间超出了工作范围,即使是开始和结束,它也应该返回 0。(我相信我可以通过使用 IF 来克服这个问题)

######## 是显示负值的字段。由于我将所有单元格格式化为 [h]:mm

谁能在这方面帮助我?

【问题讨论】:

  • 你确定你没有得到##########,因为你是根据时间而不是日期/时间格式计算上下限(这会给出负数我希望 ######### 在 excel(!) 中出现负持续时间?即第二班的上午 2 点上下班,晚上 9 点下班,所以如果你只精炼时间格式,那么你需要有某种 if(date_end > date_start, 2nd_working_hrs = time_end + 1 - time_start, time_end-time_start ) (交换结束,根据需要从上、下分别开始 - 但你明白我的要点,对吗?看看这个解决方案。这是相似的(并支持我的!:) Lol
  • ...(续):stackoverflow.com/questions/67351953/… PS:如果这行得通,我有机会提出赏金 - 这是我发现/悲伤地看着这个 Q 的唯一原因 :( :)跨度>

标签: excel excel-formula calculation


【解决方案1】:

由于你的Upper 2时间是第二天,所以你需要这样输入。

2:00 AM 的基础价值是0.083333333。要在第二天进行,请将其输入为1.083333333。如果您愿意,您可以将其格式化2:00 AM,这是您的公式使用的基础值。

一些示例,您的公式未更改(包括上/下 1 和 2 除外)

【讨论】:

  • 谢谢你,我很抱歉这么晚才回来。添加 + 1 到凌晨 2 点时间解决了这个问题,所以我基本上走的是在同一日期范围内进行两次时间计算的路线(第一次从上午 11 点到下午 5 点,然后从晚上 9 点到凌晨 2 点),然后将时间加在一起得到总工作时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2023-03-30
  • 1970-01-01
  • 2021-09-18
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多