Excel 2010 高级筛选问题

Excel 2010 高级筛选问题

当我尝试使用高级过滤器过滤大量数据时,遇到了一些无法解释的事情......

我有一个包含数十万行的文档 (.xlsb),其中包含大量产品及其各种属性。一个项目,一行,列中的属性。我想要做的是过滤掉(从列表中删除)其中一列中有 Y 的项目(另一个选项是 N),以及属于几个品牌之一的项目(另一列)也位于给定类别(另一列)中。换句话说,我想删除 V 列中带有 Y 的所有内容,以及 C 列中带有 AAA 的所有内容D 列中的 1A2B。

首先,我创建了 Y 过滤器:我在顶部的列中输入了 ="=N",然后进行了测试,效果很好。该列中带有 Y 的所有内容都被删除了,到目前为止一切顺利。

然后,我将一个品牌 (AAA) 添加到其自己的列中,将 <>1A2B 添加到另一列中,然后再次运行过滤器。它没有先过滤掉第一行 (Y),然后在剩余的项目中过滤掉属于给定品牌 (AAA) 和给定类别 (1A2B) 的项目,而是完全忽略了第二行。什么都没有改变。

我甚至尝试在第 V 列中添加“==N”以确保无误,但这并没有改变任何东西。

类别过滤器本身可以按预期工作。Y/N 过滤器本身也可以正常工作。但出于某种原因,当它们组合在一起时,只会执行更广泛的过滤器。有什么想法吗?

我最终让它发挥作用的方法是单独列出每个可能的品牌(AAA、AAB、AAC 等),并在 V 列中使用 ="=N"。这样它就可以单独“允许”每个带有 N 的品牌,但这远非理想的解决方案。我希望仅在行中使用 ="=N" 就能实现相同的效果,但显然并非如此。

答案1

与其尝试使用非常复杂的过滤器来实现这一点,不如创建一个带有公式的列,该公式等于 true 或 false(或 Y/N 或任何您喜欢的选项),这样效果会更好。然后,您可以非常轻松地将过滤器应用于该列。

答案2

我想我已经知道您想用高级过滤器做什么了。

您需要使用一行来满足条件,因为每行都是与其他行的“或”关系。这意味着当您执行高级筛选时,如果符合任何条件行中的条件,您将获得一行。如果您想要依赖条件,例如“非且”,则需要将该条件放在新列中,并使公式引用第一行数据。

在以下模型中,我们希望 B 列中有“N”,并且 C 列中有“AAA”,但 D 列中没有“1A2B”时才需要它。因此,在 E 列中,我们放入了一个新的公式,内容如下:=NOT(AND(C5="AAA",D5="1A2B"))

如果您这样做并运行高级过滤器,您将过滤掉 Beta = Y 的第 5-7 行,并且还会过滤掉第 9 行和第 13 行。

  |A     |B     |C     |D     |E
--+------+------+------+------+-------
 1|Alpha |Beta  |Gamma |Delta |Epsilon
 2|      |N     |      |      |FALSE
 3|      |      |      |      |
 4|Alpha |Beta  |Gamma |Delta |
 5|Andy  |Y     |AAA   |1A2B  |
 6|Bob   |Y     |BBB   |1A2B  |
 7|Chad  |Y     |AAA   |ZZ00  |
 8|Duke  |N     |BBB   |ZZ00  |
 9|Ed    |N     |AAA   |1A2B  |
10|Frank |N     |BBB   |1A2B  |
11|Gus   |N     |AAA   |ZZ00  |
12|Herb  |N     |BBB   |ZZ00  |
13|Indy  |N     |AAA   |1A2B  |
14|John  |N     |BBB   |1A2B  |
15|Kirk  |N     |AAA   |ZZ00  |
16|Luke  |N     |BBB   |ZZ00  |

您的另一个选择是拥有三行标准(<>AAA& <>1A2BAAA& <>1A2B<>AAA& 1A2B),但这种扩展性真的很差并且变得难以处理。

相关内容