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

Excel函数需求:按ID匹配Table1行并校验对应月份日期存在性

解决方案:判断ID当月是否有匹配日期

嘿,我来帮你搞定这个Excel函数需求!结合你的场景——Table1存着ID和对应的多个日期,月度日历表要校验每个ID当月是否有匹配日期——我给你两种实用的方案,适配不同的Excel版本:

方法1:用COUNTIFS(兼容绝大多数Excel版本)

先明确几个前提假设(你可以根据自己的实际表格调整):

  • 第一张工作表的数据源是正式表Table1,其中[ID]是标识列,[关联日期]是每个ID对应的日期列(每个ID可能有多行日期)
  • 月度日历工作表中,当前行的ID在单元格A2,我们要判断这个ID当前月份是否有匹配的日期

直接在日历表的对应单元格(比如B2)输入这个公式:

=IF(COUNTIFS(Table1[ID], A2, Table1[关联日期], ">="&EOMONTH(TODAY(), -1)+1, Table1[关联日期], "<="&EOMONTH(TODAY(), 0))>0, "存在匹配日期", "无匹配日期")

公式拆解:

  • EOMONTH(TODAY(), -1)+1:自动计算当前月份的第一天(比如今天是2024年5月15日,结果就是2024/5/1)
  • EOMONTH(TODAY(), 0):自动计算当前月份的最后一天(2024/5/31)
  • COUNTIFS会同时匹配两个条件:ID和日期在当月范围内,只要计数大于0,就说明该ID当月有对应日期

如果你的月度日历是固定某个特定月份(不是自动取当前月),把TODAY()换成目标月份的任意日期就行,比如要判断2024年6月,公式改成:

=IF(COUNTIFS(Table1[ID], A2, Table1[关联日期], ">="&DATE(2024,6,1), Table1[关联日期], "<="&EOMONTH(DATE(2024,6,1), 0))>0, "存在匹配日期", "无匹配日期")

方法2:用动态数组函数(Excel 365/2021及以上版本)

如果你的Excel支持动态数组(比如365或2021版),可以用BYROW批量处理所有ID,不用手动下拉填充:
假设日历表的ID范围是A2:A100,在B2输入这个公式,它会自动向下填充所有行的结果:

=BYROW(A2:A100, LAMBDA(id, IF(ROWS(FILTER(Table1[关联日期], (Table1[ID]=id)*(MONTH(Table1[关联日期])=MONTH(TODAY()))*(YEAR(Table1[关联日期])=YEAR(TODAY()))))>0, "存在", "不存在")))

额外提醒:

  • 一定要确保Table1的日期列是真正的日期格式,不是文本格式!如果是文本,函数会识别不了日期范围
  • 如果你的Table1不是正式表(只是普通单元格区域),把Table1[ID]换成对应的单元格范围,比如Sheet1!$A$2:$A$1000,日期列换成Sheet1!$B$2:$B$1000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:00:31