Excel 2010 具有称为切片器的数据透视表功能。切片机不错。但是,当您对具有大量唯一值的列进行切片时,切片器很糟糕。
我想知道如何将切片器绑定到“滑块”(滚动条),这样我就可以将宏链接到滚动条,该滚动条选择小于或等于滚动条上的值的所有切片器值。当我通过单击更改滚动条时,值会更改,因此切片器的选定值会更改。
Excel 2010 具有称为切片器的数据透视表功能。切片机不错。但是,当您对具有大量唯一值的列进行切片时,切片器很糟糕。
我想知道如何将切片器绑定到“滑块”(滚动条),这样我就可以将宏链接到滚动条,该滚动条选择小于或等于滚动条上的值的所有切片器值。当我通过单击更改滚动条时,值会更改,因此切片器的选定值会更改。
找到了一种方法来做到这一点并避免中间人(切片机)。这可能与我自己的特定数据的结构有关,但我认为它通常会起作用。
使用宏记录器,记录自己在要设置切片器的列上设置值过滤器。在我的情况下,该列是% of Sales with Vendor
我们使用值过滤器 -> 大于。选择列,然后输入值。您的数据透视表将发生变化。停止宏记录器。
我们需要另一段代码。录制新宏。使用此宏,清除您刚刚在数据透视表上设置的过滤器,然后停止记录器。
开发人员 -> 插入 -> 滚动条。现在只需将滚动条放在任何地方。
% of Sales with Vendor
在A1 等单元格中输入值范围内的值。虽然我的数据透视表将数据显示为百分比,但基础数据源使用小数。对于 20%,我将输入 2。为什么?您不能在非整数值上滚动条。我真的想要 0.2 但是通过输入=A1/10
相邻的单元格,我总是可以引用我真正想要的值
您只需要创建一个看起来像这样的宏(从您录制的两个中)。
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
A1 是您拥有价值的地方2
。滚动条应该有 Cell Link $A$1。但是,您的宏参考 B1... 您除以 10 的位置处于适当的% of Sales with Vendor
值范围内。
当然,您将宏分配给滚动条。
当您更改滚动条时,它会更改 A1 和 B1,并告诉宏使用 B1 中的值执行值过滤器。您因此创建了一个 SLIDER,因为不,您可以单击或滑动滚动条值(PS。长边水平的滚动条是一个滑块)