求可适配三种日期场景的Excel工作日计算公式
求可适配三种日期场景的Excel工作日计算公式
嗨,看来你需要一个能通吃三种日期场景的Excel公式,不用在两个公式之间来回切换对吧?我帮你整合一个试试!
先确认下你的三个核心需求:
- 场景1:没有起始日期(或者你说的不需要计算的情况)→ 返回空值
- 场景2:有起始日期,但结束日期为空 → 计算从起始日到今日的工作日(自动排除周末)
- 场景3:同时有起始和结束日期 → 只计算这两个日期之间的工作日(排除周末)
假设你的起始日期在C列,结束日期在D列(你可以根据自己的实际单元格位置调整),直接用这个统一公式就行:
=IF(ISBLANK(C2),"",IF(ISBLANK(D2),NETWORKDAYS(C2,TODAY()),NETWORKDAYS.INTL(C2,D2,1)))
咱们来拆解下这个公式的逻辑,帮你理解为啥它能搞定所有场景:
- 第一层判断:先看起始日期单元格(C2)是否为空,如果是空,直接返回空值,完美匹配你第一个正确的场景
- 第二层判断:如果起始日期不为空,再检查结束日期单元格(D2):
- 要是结束日期为空,就调用
NETWORKDAYS函数计算从起始日到今天的工作日,正好对应你第二个场景的需求 - 要是结束日期有值,就用
NETWORKDAYS.INTL(参数1代表默认排除周六周日,和NETWORKDAYS的默认规则一致)计算两个日期之间的工作日,这样就能得到你第三个场景需要的1,而不是错误的10了
- 要是结束日期为空,就调用
如果不需要自定义周末的规则,把NETWORKDAYS.INTL(C2,D2,1)换成普通的NETWORKDAYS(C2,D2)也完全没问题,效果是一样的。
备注:内容来源于stack exchange,提问作者PsychoPenguin
相关产品推荐
相关产品推荐

