excel得到两列的交集

711 阅读2分钟

在 Excel 中,如果你有两列数据(例如 A 列和 B 列)并想要找到它们的交集(即两个列中都存在的值),可以使用以下方法:

方法 1:使用 COUNTIF 函数

如果你想在 C 列中标记哪些值同时存在于 A 列和 B 列,可以在 C2 单元格输入以下公式,并向下填充:

=IF(COUNTIF(B:B, A2)>0, A2, "")

这个公式的作用是:

  • COUNTIF(B:B, A2): 计算 A2 在 B 列中出现的次数。
  • 如果次数大于 0,则返回 A2,否则返回空白。

方法 2:使用 FILTER 函数(Excel 365 及以上)

如果你使用的是 Excel 365 或者 Excel 2019,你可以使用 FILTER 函数直接提取交集:

=FILTER(A:A, ISNUMBER(MATCH(A:A, B:B, 0)))

这个公式的作用是:

  • MATCH(A:A, B:B, 0): 查找 A 列中每个值在 B 列中的位置。
  • ISNUMBER(...): 判断是否找到了匹配项。
  • FILTER(A:A, ...): 仅返回匹配成功的值。

方法 3:使用 VLOOKUPXLOOKUP

如果你想在 C 列中显示 A 列中哪些值也出现在 B 列:

=IF(ISNA(VLOOKUP(A2, B:B, 1, FALSE)), "", A2)

或者,如果你使用的是 Excel 365,可以使用 XLOOKUP

=IFERROR(XLOOKUP(A2, B:B, A2, ""), "")

这些公式的作用是:

  • 如果 A2 在 B 列中找得到,就返回 A2,否则返回空白。

方法 4:使用 Power Query(适用于数据分析)

  1. 选中 A 列和 B 列,打开 数据获取和转换数据从表/范围
  2. 在 Power Query 中,加载两个表,然后使用 合并查询 选择“内连接”。
  3. 仅保留匹配的值,并加载回 Excel。

如果你需要自动筛选出交集数据,FILTER 方法是最简洁的。如果只是标记哪些值在两个列中都存在,COUNTIF 方法较为通用。