求助:用XLookup实现未来7天到期账单查询及月末日期处理
解决月度预算仪表盘的到期账单筛选问题
核心问题修正:日期计算错误
别单独提取日份做加法,直接用日期函数运算会自动处理跨月/跨年场景:
- 今日日期:
TODAY() - 7天后日期:
TODAY()+7
比如3月27日执行TODAY()+7,会直接得到4月3日,不会出现34这种无效数字。
筛选未来7天内到期的账单
假设你的账单数据结构:
- A列:账单名称
- B列:到期日(数字格式,如8代表当月8号)
通用筛选公式(Excel 365/2021及以上版本)
用FILTER函数自动适配跨月/非跨月情况,直接输出符合条件的账单列表:
=FILTER(A:B, IF(DAY(TODAY()+7) > DAY(EOMONTH(TODAY(),0)), (B:B >= DAY(TODAY())) + (B:B <= DAY(TODAY()+7)-DAY(EOMONTH(TODAY(),0))), (B:B >= DAY(TODAY())) * (B:B <= DAY(TODAY()+7)) ), "无到期账单")
公式说明:
EOMONTH(TODAY(),0):获取当月最后一天的日期- 当7天后日期跨月时,同时筛选当月剩余到期日和下月前N天到期日;未跨月时,直接筛选今日到7天后的到期日范围
旧版Excel替代方案(无FILTER函数)
用INDEX+SMALL组合实现筛选,输入后按Ctrl+Shift+Enter作为数组公式使用,下拉填充获取所有结果:
=IFERROR(INDEX(A:A, SMALL(IF( IF(DAY(TODAY()+7) > DAY(EOMONTH(TODAY(),0)), (B:B >= DAY(TODAY())) + (B:B <= DAY(TODAY()+7)-DAY(EOMONTH(TODAY(),0))), (B:B >= DAY(TODAY())) * (B:B <= DAY(TODAY()+7)) ), ROW(B:B), ""), ROW(A1))), "")
内容的提问来源于stack exchange,提问作者Sampson4142
相关产品推荐
相关产品推荐

