如何在 Excel 2010 中避免隐藏/过滤行?

如何在 Excel 2010 中避免隐藏/过滤行?

考虑一个如下所示的电子表格:

原始电子表格示例

我希望能够在左列中过滤名称 1,并使其看起来像这样:

过滤电子表格示例

是的,我知道最简单的答案是过滤名称 1 和标题,但其他使用这个电子表格的人似乎不明白这一点。那么,我怎样才能让他们万无一失,让他们无法过滤掉左列中有标题的行呢?

请注意:除了上述简化示例之外,还有其他因素可以解释为什么它们会向下走而不是向横走。

答案1

嗯,首先,这不是 Excel 期望的数据,这就是为什么您很可能必须使用一些 VBA 宏才能按照您描述的方式解决这个问题。

Excel 希望这些数据按如下方式排列:

标题;指标 1;指标 2;指标 3

当原始数据按照此顺序排列时,创建您所要求的结果会更容易。

但是,要将其作为宏来解决,您必须获取您的姓名列表,创建一些对话框来选择姓名,创建基本宏,该宏将采用姓名添加标题并自动创建过滤器,并创建一个按钮或快捷键以将其分配给宏。

另一种方法是使用高级过滤器:http://office.microsoft.com/en-us/excel-help/filter-by-using-advanced-criteria-HP005200178.aspx

更新行为存在一些问题,但我设法通过以下设置运行它:

Table1:

A      | B        | C
-----------------------------------------------
Header | Metric 1 | Name1 (this is your filter)
Name 1 | 100      |
Name 2 | 300      |
Name 3 | 200      |

Table2:

A
----------------
Header
="=" & Table1!C1
'=Header

然后,您为 Table1!A1:B4 设置一个高级过滤器,并以 Table2!A1:A3 为条件。

我想说这些是你的选择。

答案2

我建议改变你的数据呈现设计

或者至少使用带有类似公式的第三列,这样用户即使只过滤名称,也能看到指标的名称=IF(A2="Header";B2;C1)

在此处输入图片描述

答案3

最好的方法是将其设为命名范围或可扩展范围的表,并引用范围而不是指定的声明范围。

话虽如此:

Range("Table2").AutoFilter 1, "header", xlOr, "Name1", False

如果您只有两个基本条件,这种方法是可行的。如果您需要两个以上的条件,可能需要重新构建您的 NamedRange/Table,以便您可以过滤掉不同的字段/列。

编辑于 2012-10-15 @ 15:29

根据我个人的需要做了一些进一步的研究,发现如果你有多个(超过 2 个)标准,你也可以这样做,包括:

Range("Table2").AutoFilter Field:=1, Criteria1:=Array("val1", "val2"), Operator:=xlFilterValues

参考自:VBA 技巧和窍门 - Excel VBA 自动筛选:多个条件

答案4

一个简单的(虽然不完美)解决方案 - 在“Header”一词后,只需输入一个空格,然后输入“Metric 1”,然后将 Metric 1 文本的颜色更改为与背景相匹配...在本例中为白色。它变得不可见,但如果选中,它仍会显示在过滤器中。您只需记住在过滤器中勾选“Header”和“Header Metric 1”框...因此不完美。

相关内容