Excel技巧:如何根据单元格中的长日期名称获取下一个长日期名称
解决方法
你的公式报错是因为A1里的是文本格式的星期名称,不是可计算的日期值,直接+1会触发类型错误。以下是几种可行的公式方案:
方案1:用WEEKDAY+CHOOSE实现循环跳转
这个方法先把文本星期转成数字,再计算下一个星期的位置,最后映射回名称:
=CHOOSE(MOD(WEEKDAY(A1,2),7)+1,"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
WEEKDAY(A1,2):将文本星期转为数字(Monday=1,Sunday=7)MOD(...,7)+1:处理循环逻辑(比如Sunday的数字7,MOD后是0,+1回到1对应Monday)CHOOSE:根据数字返回对应的星期名称
方案2:用DATEVALUE转成日期后计算
先把文本星期转成一个真实的日期值,再加1天转成下一个星期:
=TEXT(DATEVALUE(A1&", 1/1/2024")+1,"dddd")
DATEVALUE(A1&", 1/1/2024"):把文本星期和一个已知日期拼接,转成真实日期(2024年1月1日是Monday,确保拼接后日期匹配)+1:加一天得到下一天的日期TEXT(..., "dddd"):转成长格式的星期名称
方案3:用XLOOKUP(适用于Excel 365/2021)
直接通过查找匹配的星期列表,返回下一个值,自带循环逻辑:
=XLOOKUP(A1,{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"},{"Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Monday"},,0,1)
- 第一个数组是原星期列表,第二个是对应的下一个星期列表
- 最后一个参数
1表示循环查找,当找不到匹配项(比如最后一个Sunday)时,返回列表第一个值
内容的提问来源于stack exchange,提问作者Birch McMullin
相关产品推荐
相关产品推荐

