Excel 2007:根据列表筛选出表中的行

Excel 2007:根据列表筛选出表中的行

我有一张如下所示的大桌子:

ID      String
1       abcde
2       defgh
3       defgh
4       defgh
5       ijkl
6       ijkl
7       mnop
8       qrst

我想通过填充过滤值列表来选择性地隐藏行。例如,我想过滤掉(隐藏)所有包含“ef”、“kl”和“qr”的行。有没有简单的方法可以做到这一点?

我知道如何使用高级过滤器包括只包含这些子字符串的行,而不包含逆子字符串。有人这样做过吗?

答案1

您仍然可以使用高级过滤器。您可以使用以下方法解决您的问题:

单一标准

这是一种排除或隐藏包含子字符串“ef”的单元格的方法。

在此处输入图片描述

结果:

在此处输入图片描述

这是公式A13

=ISERROR(SEARCH($B$13,B2))

其工作原理相同:=ISERROR(SEARCH("ef",B2))

注意绝对引用和相对引用的用法。第二个引用(B2)指向数据范围内的第一个项目;为了使过滤器正常工作,它需要相对的。指向您不想包含的文本子字符串的引用必须是绝对的。

此外,标准范围需要具有空白标题;尽管您在设置高级过滤器时已经将其包括在内(请参见屏幕截图中的“条件范围”字段)。


多项标准

此示例隐藏包含子字符串“ef”、“j”和“rs”的单元格。

在此处输入图片描述

结果:

在此处输入图片描述

这是公式A13这次:

=AND(ISERROR(SEARCH($B$13,B2)),
     ISERROR(SEARCH($B$14,B2)),
     ISERROR(SEARCH($B$15,B2)))

或者你可以使用:

=AND(ISERROR(SEARCH("ef",B2)),
     ISERROR(SEARCH("j",B2)),
     ISERROR(SEARCH("rs",B2)))

答案2

我能想到的一个简单但完全不雅的方法是设置另一列来检查目标列中的值是否包含你的过滤字符串。

你的公式看起来像

=IF(ISNUMBER(FIND("ef",B2)),1,0)+IF(ISNUMBER(FIND("kl",B2)),1,0)+IF(ISNUMBER(FIND("qr",B2)),1,0)

然后您可以根据 0 自动过滤。

答案3

我知道您的问题涉及一年多的时间,但如果您还没弄清楚的话,您可以使用条件格式。

相关内容