如何从另一个项目列表中过滤一个项目列表?
How to filter one list of items from another list of items?
我在 A 列中有大量项目(1,000 项),在 B 列中有较小的项目列表(510 项)。
我想在 C 列中放置一个公式,以仅显示 A 列中的项目,而不是 B 列中的项目。
如何通过公式,最好是 FILTER 公式来实现?
- Select A 列中的列表
- 右键单击并select命名范围...
- 输入"ColumnToSearch"
- 单击单元格 C1
- 输入这个公式:
=MATCH(B1,ColumnToSearch,0)
- 将 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; )))
如果您遇到范围不匹配的情况,请参阅:
我在 A 列中有大量项目(1,000 项),在 B 列中有较小的项目列表(510 项)。
我想在 C 列中放置一个公式,以仅显示 A 列中的项目,而不是 B 列中的项目。
如何通过公式,最好是 FILTER 公式来实现?
- Select A 列中的列表
- 右键单击并select命名范围...
- 输入"ColumnToSearch"
- 单击单元格 C1
- 输入这个公式:
=MATCH(B1,ColumnToSearch,0)
- 将 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; )))
如果您遇到范围不匹配的情况,请参阅: