Excel中按多条件为2022-2024日期分配周数的问题求助
自定义周数分配公式修正(针对2022-2024年日期)
需求规则
- 第1周从当年第一个周日开始
- 当年第一个周日之前的日期,统一分配为上一年的第52周
- 每年仅保留52周,无第53周
示例验证
- 2022年1月1日(周六)→ 2021年第52周
- 2022年1月2日(周日)→ 2022年第1周
- 2022年12月31日(周六)→ 2022年第52周
- 2023年1月1日(周日)→ 2023年第1周
原公式问题
以下公式(A列为日期,格式yyyy-mm-dd)能正确处理2022年初的日期,但会错误将2023年1月1日判定为第53周:
if(a1<date(year(a1),1,1)+(8-weekday(date(year(a1),1,1),1)), weeknum(date(year(a1),1,1)-weekday(date(year(a1),1,1),1)+1,1),weeknum(a1-weekday(a1,1),1))
修正后的公式
带年份的完整周数格式
=IF(A1<DATE(YEAR(A1),1,1)+(8-WEEKDAY(DATE(YEAR(A1),1,1),1)),YEAR(A1)-1&"年第52周",YEAR(A1)&"年第"&MIN(INT((A1-(DATE(YEAR(A1),1,1)+(8-WEEKDAY(DATE(YEAR(A1),1,1),1))))/7)+1,52)&"周")
仅返回周数数值
=IF(A1<DATE(YEAR(A1),1,1)+(8-WEEKDAY(DATE(YEAR(A1),1,1),1)),52,MIN(INT((A1-(DATE(YEAR(A1),1,1)+(8-WEEKDAY(DATE(YEAR(A1),1,1),1))))/7)+1,52))
公式说明
- 前置判断:先计算当年第一个周日的日期,若当前日期早于该日期,直接返回上一年第52周
- 周数计算:对符合当年周数范围的日期,计算其与第一个周日的间隔天数,转换为周数后用
MIN函数限制最大值为52,确保每年仅保留52周
内容的提问来源于stack exchange,提问作者Mcloy
相关产品推荐
相关产品推荐

