Excel中基于年份自动扩展/收缩周日周日期的函数设置
按输入年份自动生成全年周日并动态适配的Excel实现方案
核心需求实现:动态生成全年周日日期
假设年份输入在C1单元格,要在A列从A2开始自动生成该年所有周日的日期,直接用以下动态数组公式(适用于Excel 365/2021及以上版本):
=LET( 目标年份, C1, 首个周日, DATE(目标年份,1,1)+(7-WEEKDAY(DATE(目标年份,1,1),1))%7, 周日总数, YEAR(DATE(目标年份,12,31))-YEAR(首个周日)+(WEEKDAY(DATE(目标年份,12,31),1)=1), SEQUENCE(周日总数,,首个周日,7) )
公式逻辑:
- 先算出目标年份的第一个周日日期
- 统计该年一共有多少个周日
- 用
SEQUENCE生成从首个周日开始、每周加7天的日期序列,会自动根据年份扩展或收缩行数(比如平年52个周日,闰年可能53个)
如果是旧版Excel(无动态数组),可以用数组公式(输入后按Ctrl+Shift+Enter),然后下拉到足够多的行:
=IF(DATE(C1,1,1)+(7-WEEKDAY(DATE(C1,1,1),1))%7+7*(ROW(A1)-1)<=DATE(C1,12,31),DATE(C1,1,1)+(7-WEEKDAY(DATE(C1,1,1),1))%7+7*(ROW(A1)-1),"")
超出目标年份的单元格会显示空值,视觉上自动收缩。
关联月/季/年汇总的动态适配
如果捐赠数据在B列(对应A列的周日),要做自动适配的汇总:
- 月度汇总:在D2输入
=UNIQUE(MONTH(A#))(自动列出该年所有有周日的月份),E2输入=SUMIFS(B#,MONTH(A#),D2),公式会自动溢出计算每个月的捐赠总额。 - 季度/年度汇总:用
SUMIFS结合ROUNDUP(MONTH(A#)/3,0)计算季度总额,或者直接用SUM(B#)计算年度总额,都会自动跟随日期范围变化。 - 更省心的方案:数据透视表
- 选中A:B列,插入数据透视表
- 将A列日期拖到「行」区域,右键分组选择「月、季度、年」
- 将捐赠数据拖到「值」区域设置为求和
- 当C1年份更新,A列日期自动刷新后,右键透视表点击「刷新」,汇总数据就会自动适配新的日期范围。
注意事项
- 动态数组公式仅支持Excel 365/2021及以后版本,旧版只能用数组公式+下拉的方式
- 确保C1输入的是有效年份(比如2024),公式会自动处理平闰年月的周日数量差异
内容的提问来源于stack exchange,提问作者ectrimm
相关产品推荐
相关产品推荐

