我有一长串的公司名称,我想尝试使用Filter
Excel365 中的功能来筛选仅出现在列表中的名称。
=FILTER(MasterSheet!$C:$D,MATCH(Sheet1!$H$5:$H$7,MasterSheet!$C:$C,0))
我在这里尝试了上述方法。MasterSheet
包含所有名称,并且我的范围 H5-H7 包含我想要过滤的名称列表
答案1
假设您的主要数据在这个范围内:
$A$2:$M$2000
A列是公司名称。
并且您在 Sheet2 中有一个要筛选的 30 家公司列表,例如 $A$2:$A$30。
因此,您可以在主表的第 N 列中向数据添加一个新列,其公式如下:
=XLOOKUP($A2,Sheet2!$A$2:$A$30,Sheet2!$A$2:$A$30,"")<>""
此 XLOOKUP 将获取主表 A 列中的公司名称,并在 30 家公司的列表中查找它。如果找到,它将返回公司名称,否则将返回空字符串(空白)。然后我们测试返回值是否不为空。如果不是空白,则它在 30 家公司的列表中找到了名称,并且公式返回 TRUE。您现在可以在 N=TRUE 列上筛选主表。
答案2
将 MATCH 包装在 ISNUMBER 中,并且第一个条件必须与过滤区域具有相同的行数:
=FILTER(MasterSheet!$C:$D,ISNUMBER(MATCH(MasterSheet!$C:$C,Sheet1!$H$5:$H$7,0)))
需要注意的是,尽管这可行,但将行数限制为数据集最大的行数被认为是更好的做法,即:
=FILTER(MasterSheet!$C$1:$D$10000,ISNUMBER(MATCH(MasterSheet!$C$1:$C$10000,Sheet1!$H$5:$H$7,0)))
请记住,这些是数组类型公式,范围越大,必须执行的计算就越多。