Excel筛选两列匹配值并写入第三列的方法求助
Excel两列匹配值提取解决方案
问题根源
你的公式=FILTER(A:A,COUNTIF(A:A,B:B))返回0,核心问题是COUNTIF参数顺序错误:
- COUNTIF的正确语法是
COUNTIF(查找范围, 匹配条件) - 你需要判断A列每个值是否在B列存在,因此应该用
COUNTIF(B:B, A:A)作为FILTER的判断条件,而非反过来。 - 另外直接引用整列会包含大量空白行,建议替换为实际数据范围(比如
A1:A5、B1:B5),避免无效计算。
正确公式
1. 提取A列中在B列存在的所有值(含重复,若有)
在C1单元格输入(Excel 365/2021支持动态数组,自动溢出结果):
=FILTER(A1:A5, COUNTIF(B1:B5, A1:A5)>0)
如果是旧版Excel(不支持动态数组),用数组公式(输入后按Ctrl+Shift+Enter确认):
=INDEX(A:A, SMALL(IF(COUNTIF(B:B,A:A)>0, ROW(A:A)), ROWS($C$1:C1)))
下拉填充直到出现错误值,再删除错误行即可。
2. 提取唯一匹配值(去重)
若A列有重复的匹配值,想要只保留唯一结果:
=UNIQUE(FILTER(A1:A5, COUNTIF(B1:B5, A1:A5)>0))
示例验证
你的示例数据:
| A | B |
|---|---|
| AA01 | EE04 |
| CC02 | CD06 |
| BB03 | AA02 |
| AA04 | AA01 |
| EE04 | CC02 |
使用上述公式后,C列会得到预期结果:
| C |
|---|
| AA01 |
| CC02 |
| EE04 |
内容的提问来源于stack exchange,提问作者macprocar
相关产品推荐
相关产品推荐

