You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets:计算时间戳间隔的Arrayformula问题(排除周末与非工作时间)

修复排除非工作时间与周末的时间间隔数组公式

问题根源

单个单元格公式能正常计算,但转为ARRAYFORMULA后失效,核心原因包括:

  • 未过滤空行,导致数组运算产生无效值
  • 部分函数参数未适配数组遍历逻辑,日期拆分、时间范围判断的逻辑在数组中未正确执行
  • 相对引用未调整为整列范围引用,无法批量处理多行数据

修复后的数组公式

=ARRAYFORMULA(IF(A2:A="",,
  NETWORKDAYS.INTL(INT(A2:A), INT(B2:B), 1) * ("18:00" - "09:00")
  + IF(WEEKDAY(B2:B, 2) < 6, MEDIAN(MOD(B2:B, 1), "18:00", "09:00") - "09:00", 0)
  - IF(WEEKDAY(A2:A, 2) < 6, MEDIAN(MOD(A2:A, 1), "18:00", "09:00") - "09:00", 0)
))

公式逻辑说明

  1. 空行过滤:IF(A2:A="",,)仅处理存在开始时间的行,避免空值干扰数组运算
  2. 工作日整段时长计算:NETWORKDAYS.INTL(INT(A2:A), INT(B2:B), 1)统计两个日期间的工作日数量(参数1代表周末为周六、周日),乘以每日有效工作时长(9小时)
  3. 结束日有效时长:若结束日为工作日,用MEDIAN提取结束时间在9:00-18:00时段内的部分,计算从上班时间到该时间的时长;非工作日则计为0
  4. 开始日有效时长扣除:同理计算开始日的有效时长(从开始时间到下班时间),从总时长中扣除,避免整段工作日时长计算时的重叠重复

内容的提问来源于stack exchange,提问作者Wesley Hopkins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:10:39