Excel两列重复项提取求助:现有公式筛选结果不符合预期
从两列(上月/本月数据)提取重复标识的Excel解决方案
一、公式法(分版本适配)
1. 动态数组Excel(365/2021及以后)
直接用FILTER+UNIQUE组合,一步提取两列的重复交集:
- 提取上月列(A列)中在本月列(B列)存在的标识:
=UNIQUE(FILTER(A:A,COUNTIF(B:B,A:A)>0,"无重复项")) - 提取两列中所有重复出现的标识(含上月和本月的重复项):
=UNIQUE(FILTER(VSTACK(A:A,B:B),COUNTIF(VSTACK(A:A,B:B),VSTACK(A:A,B:B))>1,"无重复项"))
公式会自动溢出结果,无需下拉填充。
2. 普通Excel版本(非动态数组)
用数组公式实现,以提取A列在B列的重复项为例,在空白单元格(比如G2)输入:
=IFERROR(INDEX($A:$A,SMALL(IF(COUNTIF($B:$B,$A$2:$A$1000)>0,ROW($A$2:$A$1000)),ROW(A1))),"")
输入完成后按 Ctrl+Shift+Enter 触发数组计算,然后下拉填充到出现空值为止。
注:把
$A$2:$A$1000改成你实际的数据范围,避免整列计算拖慢速度。
二、Power Query法(适合上千行大数据量)
大数据量用公式容易卡顿,Power Query更高效稳定:
- 选中A列数据,点击「数据」→「从表格/区域」,导入为查询表(勾选「我的表格有标题」),命名为「上月数据」;
- 同理导入B列数据,命名为「本月数据」;
- 点击「数据」→「获取数据」→「合并查询」→「合并查询作为新查询」;
- 合并设置:左表选「上月数据」,右表选「本月数据」,匹配列选两列的标识列,连接类型选「内部(仅匹配行)」;
- 点击合并后的箭头,只勾选标识列,确定后加载到工作表,得到的就是两列的重复标识。
你之前公式的问题
你用的INDEX+SMALL公式逻辑错误:
NOT(D$2:D$104=TRUE)是反向筛选,相当于找不重复的项,和你要提取重复项的需求相反;- 行号计算
ROW(B2)-ROW(INDEX(B2;1;1))+1完全多余,直接引用符合条件的行号即可。
内容的提问来源于stack exchange,提问作者telebajsk
相关产品推荐
相关产品推荐

