首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算两个日期之间(不包括周末)和晚上10点到上午10点之间的小时数?

计算两个日期之间(不包括周末)和晚上10点到上午10点之间的小时数?
EN

Stack Overflow用户
提问于 2015-12-01 22:00:54
回答 2查看 624关注 0票数 0

我正在计算两个日期/时间之间的小时数,不包括银行节假日和晚上10点到上午10点之间的小时数。

我在B3中得到了开始日期时间,然后在G3中结束了日期时间。在SLA B13 - B22中,我有一个2015年的银行假日日期列表,我使用以下格式

代码语言:javascript
复制
=SUM(G3-B3-COUNTIFS(SLA!B13:B22,">"&B3,SLA!B13:B22,"<"&G3))

由于某些原因,我不能将银行假期排除在外,但是我还需要考虑晚上10点到上午10点范围。

有人能帮上忙吗?

EN

回答 2

Stack Overflow用户

发布于 2015-12-01 22:10:26

代码语言:javascript
复制
=NETWORKDAYS(B3;G3;SLA!B13:B22)*12

*12,因为每天只有12小时计算在内(不包括晚上10点到早上10点之间的时间)

票数 1
EN

Stack Overflow用户

发布于 2015-12-01 22:28:40

我已经尝试过你的公式,只要你将包含公式的单元格格式设置为常规或数字,以避免将其格式化为日期,它对我来说就可以工作一整天。当然,它并不排除周末,而周末大概就是你想要的。

如果开始日期和结束日期是银行假日,您可能需要添加1以使其包含在内,将>添加到>=中,并将<添加到<=中,然后乘以12得到以小时为单位的结果:

代码语言:javascript
复制
=(G3-B3+1-COUNTIFS(SLA!B13:B22,">="&B3,SLA!B13:B22,"<="&G3))*12

您可以直接从日期时间值计算工作小时数:基本公式为:-

代码语言:javascript
复制
=(G3-B3)*24-(INT(G3)-INT(B3))*12

即每个完整的一天减去12个小时。

您还可以排除假日(如果在开始日期和结束日期之间):-

代码语言:javascript
复制
=(G3-B3)*24-(INT(G3)-INT(B3)+COUNTIFS(SLA!B13:B22,">"&B3,SLA!B13:B22,"<"&G3))*12

即每一天的假期再减去12小时。

您可以做的另一件事是将开始和结束时间的调整应用于Networkday公式,方法是添加:-

代码语言:javascript
复制
=MOD(G3,1)-MOD(B3,1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34022288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档