2

Excel 2010 具有称为切片器的数据透视表功能。切片机不错。但是,当您对具有大量唯一值的列进行切片时,切片器很糟糕。

我想知道如何将切片器绑定到“滑块”(滚动条),这样我就可以将宏链接到滚动条,该滚动条选择小于或等于滚动条上的值的所有切片器值。当我通过单击更改滚动条时,值会更改,因此切片器的选定值会更改。

4

1 回答 1

4

找到了一种方法来做到这一点并避免中间人(切片机)。这可能与我自己的特定数据的结构有关,但我认为它通常会起作用。

  1. 使用宏记录器,记录自己在要设置切片器的列上设置值过滤器。在我的情况下,该列是% of Sales with Vendor
    我们使用值过滤器 -> 大于。选择列,然后输入值。您的数据透视表将发生变化。停止宏记录器。

  2. 我们需要另一段代码。录制新宏。使用此宏,清除您刚刚在数据透视表上设置的过滤器,然后停止记录器。

  3. 开发人员 -> 插入 -> 滚动条。现在只需将滚动条放在任何地方。

  4. % of Sales with Vendor在A1 等单元格中输入值范围内的值。虽然我的数据透视表将数据显示为百分比,但基础数据源使用小数。对于 20%,我将输入 2。为什么?您不能在非整数值上滚动条。我真的想要 0.2 但是通过输入=A1/10相邻的单元格,我总是可以引用我真正想要的值

  5. 您只需要创建一个看起来像这样的宏(从您录制的两个中)。


Sub sliderfilter()  
    '  
    ' sliderfilter Macro  
    '  
    '  

    ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor"). _  
    ClearAllFilters  

    ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor").PivotFilters. _  
        Add Type:=xlValueIsGreaterThan, DataField:=ActiveSheet.PivotTables( _  
        "PivotTable2").PivotFields("% of Sales with Vendor"), Value1:=Range("B1").Value

End Sub
  1. A1 是您拥有价值的地方2。滚动条应该有 Cell Link $A$1。但是,您的宏参考 B1... 您除以 10 的位置处于适当的% of Sales with Vendor值范围内。

  2. 当然,您将宏分配给滚动条。

当您更改滚动条时,它会更改 A1 和 B1,并告诉宏使用 B1 中的值执行值过滤器。您因此创建了一个 SLIDER,因为不,您可以单击或滑动滚动条值(PS。长边水平的滚动条是一个滑块)

于 2012-12-14T18:39:32.067 回答