excel - 日期范围之间两个不同的营业时间范围(如轮类)

标签 excel excel-formula calculation

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

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

=(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

OUTPUT

有谁可以在这方面帮助我吗?

最佳答案

由于您的 Upper 2 时间是第二天,因此您需要这样输入。

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

一些示例,公式不变(除了包括上/下 1 和 2)

enter image description here

关于excel - 日期范围之间两个不同的营业时间范围(如轮类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67902354/

相关文章:

excel - 在excel中显示一周的日期范围

excel - 你能让 Excel 公式迭代和计数循环吗

ms-access - 将计算字段添加到报告中

html - div 高度相对于 div 内的某个数值

excel - 将 Excel VBA 代码注入(inject)从外部源接收的电子表格并执行

email - 跟进使用VBA发送电子邮件

python - 如果数据来自文件excel或csv,如何使用stopword sastrawi库python

excel - 将货币从一个单元格移动到另一个单元格

python - 使用现有数据框的分组比率构建新的数据框

VBA 无限循环