如何在Google Sheets中用SEQUENCE函数生成月度首日日期序列
生成Google Sheets每月首日日期序列的方法
一、使用SEQUENCE函数实现
核心思路是通过SEQUENCE生成月份偏移量,搭配EDATE函数计算每月首日。
公式示例(引用单元格)
假设A1单元格存起始日期2020-01-01,B1单元格存结束日期2022-12-01,输入以下公式:
=EDATE(A1, SEQUENCE(DATEDIF(A1, B1, "M") + 1, 1, 0))
DATEDIF(A1, B1, "M"):算出两个日期间的总月数(结果为35),加1是为了包含结束月份,最终序列长度为36SEQUENCE(36, 1, 0):生成从0到35的连续整数,作为月份偏移量EDATE(A1, 偏移量):给起始日期加上对应月数,得到每月首日
公式示例(直接嵌入日期)
若不想用单元格引用,直接写日期的公式:
=EDATE("2020-01-01", SEQUENCE(DATEDIF("2020-01-01", "2022-12-01", "M") + 1, 1, 0))
二、其他可行方法
1. 手动快速填充
- 输入第一个日期
2020-01-01 - 选中该单元格,鼠标移到右下角填充柄(小方块)
- 按住右键向下拖动到目标范围,松开后选择「填充月份」,自动生成每月首日
2. DATE+SEQUENCE组合公式
直接通过年份、月份序列生成日期:
=DATE(2020 + INT((SEQUENCE(36, 1, 0))/12), 1 + MOD(SEQUENCE(36, 1, 0), 12), 1)
SEQUENCE(36,1,0):生成0到35的序列(对应36个月)INT((序列)/12):计算年份偏移(0→2020,1→2021,2→2022)MOD(序列,12):计算月份偏移(0→1月,1→2月…11→12月)DATE(年, 月, 1):组合成每月首日
3. ARRAYFORMULA+ROW组合公式
用ROW生成序列替代SEQUENCE,适配旧版Google Sheets:
=ARRAYFORMULA(EDATE("2020-01-01", ROW(INDIRECT("1:"&DATEDIF("2020-01-01", "2022-12-01", "M")+1))-1))
INDIRECT("1:36"):生成1到36的行号序列,减1后得到0到35的偏移量,再通过EDATE生成日期
内容的提问来源于stack exchange,提问作者Juan
相关产品推荐
相关产品推荐

