You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel如何自动填充日历:匹配月日数值填入对应项目ID

实现方案(Excel/WPS/Google Sheets通用)

以下方案默认使用如下数据结构,你可以根据实际表格的列位置调整公式内的列标:

  • 项目表(Sheet1):A列存储项目ID,B列存储对应项目的月份数字,C列存储对应项目的日期数字;若为跨日期项目,新增D列存结束日、E列存结束月即可
  • 日历表(Sheet2):待填充项目ID的单元格对应行,F列存当前日历格的月份数字,G列存当前日历格的日期数字

场景1:单个项目仅对应单天日期(匹配你给出的示例场景)

方案1(优先选,最简单):365版本Excel/新版WPS用XLOOKUP多条件匹配

直接在Sheet2的待填充单元格输入如下公式,回车即可生效:

=XLOOKUP(1, (Sheet1!B:B=F2)*(Sheet1!C:C=G2), Sheet1!A:A, "无匹配项目")

公式逻辑:两个括号内分别校验月份、日期是否匹配,同时满足时返回对应行的项目ID,无匹配时返回自定义的提示文本。

方案2:旧版Excel兼容方案(INDEX+MATCH组合)

旧版Excel不支持XLOOKUP的情况下用这个公式,输入后按Ctrl+Shift+Enter作为数组公式生效:

=IFERROR(INDEX(Sheet1!A:A, MATCH(1, (Sheet1!B:B=F2)*(Sheet1!C:C=G2), 0)), "无匹配项目")

场景2:项目为跨日期范围,需要给所有落在起止月日内的日历格填充项目ID

用FILTER筛选匹配项目后拼接结果,支持同一天显示多个项目:

=TEXTJOIN("、", TRUE, FILTER(Sheet1!A:A, (Sheet1!B:B<=F2)*(Sheet1!E:E>=F2)*(Sheet1!C:C<=G2)*(Sheet1!D:D>=G2), "无匹配项目"))

注意事项

  • 所有涉及月、日的单元格必须统一为纯数字格式,不要带“月”“日”等文本字符,否则会匹配失败
  • 如果同个日期对应多个项目,TEXTJOIN会自动用指定分隔符拼接所有符合条件的项目ID,不会遗漏

内容的提问来源于stack exchange,提问作者emgee1010

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:39:03