Google Sheets数组公式需求:获取指定日期的最近历史同月同日(早于今日)
Google Sheets 数组公式:获取早于今日的最近同月同日历史日期
需求说明
针对指定列的日期,批量计算出早于当前日期的最近历史同月同日日期:
- 若今年的同月同日日期早于/等于今日,直接返回今年的该日期
- 若今年的同月同日日期晚于今日,返回去年的该日期
数组公式
=ARRAYFORMULA( IF( ISBLANK(A2:A),, DATE( YEAR(TODAY()) - (DATE(YEAR(TODAY()), MONTH(A2:A), DAY(A2:A)) > TODAY()), MONTH(A2:A), DAY(A2:A) ) ) )
公式逻辑拆解
ARRAYFORMULA:实现整列批量计算,无需手动下拉公式ISBLANK(A2:A):跳过A列空单元格,避免生成无效结果- 核心判断:
DATE(YEAR(TODAY()), MONTH(A2:A), DAY(A2:A)) > TODAY()- 构造「今年的同月同日」日期并与今日对比
- 若结果为
TRUE(今年该日期尚未到来),年份减1;否则保留当前年份
DATE():最终拼接出目标历史日期
示例(假设今日为2024/5/15)
- 指定日期为2024/6/1 → 返回2023/6/1(今年6/1晚于今日)
- 指定日期为2024/5/10 → 返回2024/5/10(今年5/10早于今日)
- 指定日期为2020/2/29 → 返回2024/3/1(非闰年无2月29日,DATE函数自动调整为当月有效日期)
内容的提问来源于stack exchange,提问作者William Toscano
相关产品推荐
相关产品推荐

