如何从另一个项目列表中过滤一个项目列表?

How to filter one list of items from another list of items?

我在 A 列中有大量项目(1,000 项),在 B 列中有较小的项目列表(510 项)。

我想在 C 列中放置一个公式,以仅显示 A 列中的项目,而不是 B 列中的项目。

如何通过公式,最好是 FILTER 公式来实现?

  1. Select A 列中的列表
  2. 右键单击并select命名范围...
  3. 输入"ColumnToSearch"
  4. 单击单元格 C1
  5. 输入这个公式:=MATCH(B1,ColumnToSearch,0)
  6. 将 B 中所有项目的公式向下拖动

如果公式找不到匹配项,它将被标记为“#N/A”,否则将是一个数字。

如果您希望匹配为 TRUE,不匹配为 FALSE,请改用此公式:

=ISNUMBER(MATCH(B1,ColumnToSearch,0))

如果您想 return 未找到的值和 return 找到的值的空字符串

=IF(ISNUMBER(MATCH(B1,ColumnToSearch,0)),"",B1)

另一种方法很简单=

FILTER(A1:A,if(COUNTIF(B1:B,A1:A),0,1))

效率更高。 如果 B 中的值在 A 中,它使用 countif 获取 0 或 1 作为数组,然后它反转 0 和 1 以获取缺少的值,而不仅仅是其中的值。然后它会基于此进行过滤。 列看起来像这样

A   B
1   2
2   5
3
4
5

ARE 公式:

=FILTER(A1:A, MATCH(A1:A, B1:B, 0))

=FILTER(A1:A, COUNTIF(B1:B, A1:A))

不是公式:

=FILTER(A1:A, ISNA(MATCH(A1:A, B1:B, 0)))

=FILTER(A1:A, NOT(COUNTIF(B1:B, A1:A)))

你的情况:

=FILTER(A1:A; ISNA(MATCH(A:A; B:B; )))

如果您遇到范围不匹配的情况,请参阅: