如何在Google Sheets/Excel中根据指定星期几获取对应下一个日期
解决方案
错误原因说明
你之前使用的公式=A12+(C12+ MOD(7-day(A12),7))出错的核心原因是误用了DAY()函数:该函数返回的是指定日期在当月的第几天(如2009年10月16日调用DAY()返回16),而非对应星期的序号,需要替换为WEEKDAY()函数实现星期计算。
可用公式
场景1:输入为1-7的星期数字
默认适配规则:1=星期日,2=星期一…7=星期六(和表格默认WEEKDAY参数1规则对齐),如果你的规则是1=星期一,7=星期日,把公式中WEEKDAY(A12,1)改为WEEKDAY(A12,2)即可。
=A12 + MOD(C12 - WEEKDAY(A12,1), 7)
场景2:输入为中文星期名称(如"星期五")
=A12 + MOD(MATCH(C12,{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"},0) - WEEKDAY(A12,1), 7)
场景3:同时适配数字和中文名称输入
公式自动判断输入类型,无需额外调整:
=A12 + MOD(IF(ISNUMBER(C12),C12,MATCH(C12,{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"},0)) - WEEKDAY(A12,1), 7)
效果验证
用你给出的示例验证:基准日期为2009年10月16日星期五
- 输入星期五:返回2009年10月16日,符合预期
- 输入星期六:返回2009年10月17日,符合预期
- 输入星期四:返回2009年10月22日,符合预期
内容的提问来源于stack exchange,提问作者Code Guy
相关产品推荐
相关产品推荐

