如何用Excel公式返回指定条件下的重叠日期项目列表?
提取重叠项目的Excel公式方案
动态数组公式(Excel 365/2021及以上版本适用)
在任意空白单元格(比如Q2)输入以下公式,会自动溢出显示所有符合条件的重叠项目:
=FILTER($A$2:$M$8887,($N$2:$N$8887=N2)*($B$2:$B$8887=B2)*(F2<=$G$2:$G$8887)*(G2>=$F$2:$F$8887),"无重叠项目")
公式说明:
$A$2:$M$8887:替换成你想要返回的完整项目数据列范围(比如包含项目名称、日期等所有列)($N$2:$N$8887=N2)*($B$2:$B$8887=B2):筛选出和当前行同N列、同B列的项目子集(F2<=$G$2:$G$8887)*(G2>=$F$2:$F$8887):判断日期重叠的核心逻辑——当前行的开始日期≤目标行的结束日期,且当前行的结束日期≥目标行的开始日期"无重叠项目":无匹配结果时显示的提示文本,可根据需求修改
旧版Excel兼容公式(无动态数组支持)
如果使用的是不支持动态数组的Excel版本,可使用以下数组公式,输入后按Ctrl+Shift+Enter确认,然后下拉填充直到出现空值:
=IFERROR(INDEX($A$2:$A$8887,SMALL(IF(($N$2:$N$8887=N2)*($B$2:$B$8887=B2)*(F2<=$G$2:$G$8887)*(G2>=$F$2:$F$8887),ROW($A$2:$A$8887)-ROW($A$2)+1),ROW(A1))),"")
公式说明:
$A$2:$A$8887:替换成你要提取的项目标识列(比如项目名称列)- 下拉填充时,
ROW(A1)会自动递增,依次返回第1、2、3...个符合条件的项目 - 若无更多匹配项,会返回空文本
内容的提问来源于stack exchange,提问作者Panos
相关产品推荐
相关产品推荐

