如何用单个公式在Google Sheets中获取输入日期当月后续周末日期数组
Google Sheets 公式:获取指定日期当月后续所有周末日期数组
核心公式(非迭代、轻量)
=LET( end_date, EOMONTH(A1, 0), date_range, SEQUENCE(end_date - A1, 1, A1 + 1), FILTER(date_range, WEEKDAY(date_range, 2) >= 6) )
公式解析
LET(...):通过定义变量避免重复计算,提升执行效率,适合多次复用场景end_date:调用EOMONTH获取输入日期A1所在月份的最后一天date_range:生成从A1次日到当月月末的完整日期序列
FILTER(date_range, WEEKDAY(date_range, 2) >= 6):筛选序列中的周末日期——WEEKDAY使用类型2时,6代表周六、7代表周日,>=6即可匹配所有周末日期
示例验证
- 输入
A1=Mar 30(2024-03-30):- 生成的日期序列仅包含
2024-03-31,该日期为周日(WEEKDAY=7),输出结果为Mar 31
- 生成的日期序列仅包含
- 输入
A1=Mar 20(2024-03-20):- 筛选出的周末日期为
Mar 23(周六)、Mar 24(周日)、Mar 30(周六)、Mar 31(周日),与预期一致
- 筛选出的周末日期为
- 输入
A1=8/22/2024(2024-08-22):- 筛选出的周末日期为
Aug 24(周六)、Aug 25(周日)、Aug 31(周六),符合预期
- 筛选出的周末日期为
注意事项
- 无需开启迭代设置,所有用户可直接复制复用公式
- 使用
LET减少了重复计算,相比无变量的版本更轻量,适配10-100次的使用需求 - 若需调整周末的定义(例如仅包含周六),可将条件改为
WEEKDAY(date_range, 2) = 6
内容的提问来源于stack exchange,提问作者Snoozy
相关产品推荐
相关产品推荐

