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

如何在Google Sheets数组公式中结合WEEKDAY函数调整周末备货日期?

当然可以实现!

完全能在你的ARRAYFORMULA里结合WEEKDAY函数来处理周末顺延的需求,我给你拆解两种常见场景的实现方式,你可以根据自己的实际需求调整:

场景1:计算出的备货日期(如Prep End)落在周末时,自动顺延到下一个工作日

假设你的Ship Date在A列,Prep Days在B列,原本的公式是=ARRAYFORMULA(A2:A + B2:B)来计算Prep End。现在要让结果如果是周六/周日,自动跳到下一个工作日:

=ARRAYFORMULA(
  IF(A2:A="",,  # 跳过空行
    A2:A + B2:B + 
    # 判断日期是否为周六(=6)或周日(=7),计算需要顺延的天数
    IF(WEEKDAY(A2:A + B2:B, 2) >= 6, 
       8 - WEEKDAY(A2:A + B2:B, 2), 
       0)
  )
)

逻辑说明:

  • WEEKDAY(date, 2)让周一=1、周日=7,这样周六=6、周日=7,判断周末更直观
  • 如果是周六,8-6=2,也就是加2天跳到周一;如果是周日,8-7=1,加1天跳到周一
  • 工作日的话加0天,保持原日期

场景2:备货仅在工作日进行,计算满足Prep Days个工作日后的日期(跳过周末)

如果你的需求是备货天数只算工作日(比如要凑够N个工作日的备货时间,自动跳过周末),那可以结合WORKDAY和ARRAYFORMULA,比单纯用WEEKDAY更简洁:

=ARRAYFORMULA(
  IF(A2:A="",,
    WORKDAY(A2:A, B2:B)
  )
)

补充:自定义周末规则

如果你的周末不是周六周日,可以用NETWORKDAYS.INTL指定特殊规则,比如仅周日休息:

=ARRAYFORMULA(
  IF(A2:A="",,
    NETWORKDAYS.INTL(A2:A, A2:A + B2:B + 10, "1111110")  # 最后参数代表周日休息
  )
)

适配你的Prep Start计算

如果你的Prep Start是Ship Date减去备货天数,只需要把公式里的+ B2:B改成- B2:B即可,逻辑完全通用:

# 计算Prep Start(Ship Date减去Prep Days,周末顺延到上一个工作日)
=ARRAYFORMULA(
  IF(A2:A="",,
    A2:A - B2:B - 
    IF(WEEKDAY(A2:A - B2:B, 2) >= 6, 
       WEEKDAY(A2:A - B2:B, 2) - 5, 
       0)
  )
)

这里如果是周六,6-5=1,减1天到周五;周日7-5=2,减2天到周五,完美回到工作日。


内容的提问来源于stack exchange,提问作者Jake Reilly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:18:30