Excel:计算指定周几的下一个/上一个日期(周起始为周六)
解决方案
核心说明
以WEEKDAY(date,16)作为星期数判定标准(周六=1,周日=2,周一=3,周二=4,周三=5,周四=6,周五=7),公式中:
A1:基准日期单元格B1:目标星期几的对应数值(比如要找周二,就填4)
计算下一个目标日期
公式:
=A1 + (B1 - WEEKDAY(A1,16) + 7) % 7 + IF(WEEKDAY(A1,16) >= B1, 7, 0)
逻辑拆解
(B1 - WEEKDAY(A1,16) + 7) % 7:计算当前日期到本周内目标星期几需添加的天数(结果范围0-6)IF(WEEKDAY(A1,16) >= B1,7,0):若当前日期已是目标星期几或更靠后,直接加本周天数会得到当天或更早日期,因此额外加7天跳至下一周- 两项结果相加后叠加到基准日期,得到严格下一个目标星期几的日期
计算上一个目标日期
公式:
=A1 - (WEEKDAY(A1,16) - B1 + 7) % 7 - IF(WEEKDAY(A1,16) <= B1, 7, 0)
逻辑拆解
(WEEKDAY(A1,16) - B1 + 7) % 7:计算当前日期到本周内上一个目标星期几需扣除的天数(结果范围0-6)IF(WEEKDAY(A1,16) <= B1,7,0):若当前日期已是目标星期几或更早,直接减本周天数会得到当天或更晚日期,因此额外减7天跳至上一周- 两项结果相减后从基准日期扣除,得到严格上一个目标星期几的日期
示例验证
假设基准日期A1为2024/5/20(周一,WEEKDAY(A1,16)=3):
- 计算下一个周一(B1=3):返回2024/5/27(下一周周一),符合需求
- 计算下一个周二(B1=4):返回2024/5/21(本周二)
- 计算上一个周一(B1=3):返回2024/5/13(上一周周一)
内容的提问来源于stack exchange,提问作者L'le Tom
相关产品推荐
相关产品推荐

