在Excel中计算两个日期之间的工作日小时数
我正试图确定这段时间有多少时间 在一个工作日的两个时间点之间 (由Excel的在Excel中计算两个日期之间的工作日小时数,excel,datetime,excel-formula,formula,Excel,Datetime,Excel Formula,Formula,我正试图确定这段时间有多少时间 在一个工作日的两个时间点之间 (由Excel的NETWORKDAYS函数确定) 例如,周二至11日之间的“工作日时间” 颗粒物 下周三2 上午是3小时 星期五也一样 下午二时至星期一二 是的 如果开始时间是星期五8点 颗粒物 结束时间是周六或周日的任何时间, 答案应该是4小时- 在周末休息的部分 (或假日)应该被忽略 (或从端到端持续时间中减去) 这个问题的底部说明了更多的例子 我在这里发现了很多东西,但它们处理SQL、代码等,而不是Excel中的一吨。我确实找到
NETWORKDAYS
函数确定)
例如,周二至11日之间的“工作日时间” 颗粒物
下周三2 上午是3小时
星期五也一样 下午二时至星期一二 是的
如果开始时间是星期五8点 颗粒物
结束时间是周六或周日的任何时间,
答案应该是4小时-
在周末休息的部分
(或假日)应该被忽略
(或从端到端持续时间中减去)
这个问题的底部说明了更多的例子
我在这里发现了很多东西,但它们处理SQL、代码等,而不是Excel中的一吨。我确实找到了,但它并没有直接帮助我
我将其用于公式:
=NETWORKDAYS(F2,G2,Q$2:Q$7)-1-MOD(F2,1)+MOD(G2,1)
下面是正在发生的事情
我在这里遗漏了什么?首先,您遗漏了一个明确的问题陈述 “工作日小时数”是多少 星期五中午到星期六中午之间 好吧,我想你是在说明你到底想要什么 少一点咆哮,你错过了什么 (你似乎没有注意到的) 在所有你说结果是错误的例子中 (仅在这些情况下), 开始日期/时间(
Fn
)
或您的结束日期/时间(Gn
)
星期六还是星期天
(尝试使用格式ddd mm dd yyyy h:mm:ss
而不是mm dd yyyy h:mm:ss
)
网络日(星期三、星期五)
是3
但是网络日(周三、周六)
和网络日(周三、周日)
也是3
举你的第一个例子:Tue07-03-2018 15:44:16
通过《太阳报》07-08-2018 20:09:56
网络日(周二、周日)
通常为4
(星期二、星期三、星期四和星期五;忽略周末),
但是NETWORKDAYS(07-03周二,07-08周日)
是3
因为07-04的假期
所以你的公式是3-1-(15:44:16)+(20:09:56),
或2+(20:09:56-15:44:16),或2天和4:25:40,
等于52:25:40,这就是Excel给你的
你没有考虑到
将为您提供所需的结果。您需要考虑间隔的开始和结束日期可能在周末(或假日)。在这种情况下,不应使用
MOD
术语。试试这个:
your_formula(Tue 07-03-2018 15:44:16, Fri 07-06-2018 20:09:56)
=(网络日(F2,G2,$Q$2:$Q$6)-如果(和)(工作日(F2,2)您的公式高度依赖于控制输入数据。当前,您的公式仅在日期范围内的第一天和最后一天是工作日时才有效。这是由于MOD(F2,1)+MOD(G2,1)
这将取你范围内第一天和最后一天的剩余部分。如果它们恰好是非工作日,那么你的公式将是错误的
将您的公式与数据库中的信息相结合,您可以使公式根据您所拥有的做您想要做的事情
在这里:
=网络日(如果(工作日)(F2)
your_formula(Tue 07-03-2018 15:44:16, Fri 07-06-2018 20:09:56)
=NETWORKDAYS(F2,G2,Q$2:Q$7)-NETWORKDAYS(G2,G2,Q$2:Q$7)-NETWORKDAYS(F2,F2,Q$2:Q$7)*MOD(F2,1)+NETWORKDAYS(G2,G2,Q$2:Q$7)*MOD(G2,1)
=(NETWORKDAYS(F2,G2,$Q$2:$Q$6)-IF(AND(WEEKDAY(F2,2)<6,ISNA(MATCH(INT(F2),$Q$2:$Q$6,0))),MOD(F2,1),0)+IF(AND(WEEKDAY(G2,2)<6,ISNA(MATCH(INT(G2),$Q$2:$Q$6,0))),MOD(G2,1)-1,0))
=NETWORKDAYS(IF(WEEKDAY(F2)<5,F2,WORKDAY(F2,1,holidays)),IF(WEEKDAY(G2)<5,G2,WORKDAY(G2,-1,holidays)),holidays)-IF(WEEKDAY(F2,2)<6,MOD(F2,1),1)+IF(WEEKDAY(G2,2)<6,MOD(G2,1),0)