为枢轴 table 到 select 多个值创建切片器
Creating a slicer for pivot table to select multiple values
我有一个来自 excel 的数据集,我为它创建了一个枢轴 table,如下所示:
因此,我根据数据创建了一个数据透视表 table,以对原始数据中的每个名称的检查求和。我想在这里使用时间作为切片器 - 但如您所见,如果我想 select 最近 12 周的数据,我将需要过滤到最近 4 周和 5-12 周。如果我想 select 所有时间范围,我将需要检查切片器中的所有项目。
只是想知道是否有办法创建一个切片器,选项为:
过去 4 周(如果单击此按钮,我将使用时间 = 过去 4 周
过滤我的数据
过去 12 周(如果单击此按钮,我将使用时间 = 过去 4 周 和 时间 = 5-12 周来过滤我的数据)
全部(如果我点击这个我会 select 每次值 - 基本上是 select 全部。)
如有任何帮助,我们将不胜感激。非常感谢!!
如果我对任务的理解正确,那么普通的切片就实现了这个功能。选择多个过滤器值:Ctrl + 鼠标左键(或切片 header 中带有复选标记的开关)。显示所有记录意味着删除过滤器 - 切片中带有红叉的漏斗图标 header。屏幕截图显示了基于智能 table 的示例:
另一种方法是创建您自己的形状“切片器”并为每个形状分配宏(以智能 table 为例):
宏必须放在 sheet 模块中。
Sub w4()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=Last 4 Weeks"
End Sub
Sub w5()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=5-12 Weeks"
End Sub
Sub w12()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=5-12 Weeks", Operator:=xlOr, Criteria2:="=Last 4 Weeks"
End Sub
Sub w13()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=13-20 Weeks"
End Sub
Sub FReset()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2
End Sub
我有一个来自 excel 的数据集,我为它创建了一个枢轴 table,如下所示:
因此,我根据数据创建了一个数据透视表 table,以对原始数据中的每个名称的检查求和。我想在这里使用时间作为切片器 - 但如您所见,如果我想 select 最近 12 周的数据,我将需要过滤到最近 4 周和 5-12 周。如果我想 select 所有时间范围,我将需要检查切片器中的所有项目。
只是想知道是否有办法创建一个切片器,选项为:
过去 4 周(如果单击此按钮,我将使用时间 = 过去 4 周
过滤我的数据过去 12 周(如果单击此按钮,我将使用时间 = 过去 4 周 和 时间 = 5-12 周来过滤我的数据)
全部(如果我点击这个我会 select 每次值 - 基本上是 select 全部。)
如有任何帮助,我们将不胜感激。非常感谢!!
如果我对任务的理解正确,那么普通的切片就实现了这个功能。选择多个过滤器值:Ctrl + 鼠标左键(或切片 header 中带有复选标记的开关)。显示所有记录意味着删除过滤器 - 切片中带有红叉的漏斗图标 header。屏幕截图显示了基于智能 table 的示例:
另一种方法是创建您自己的形状“切片器”并为每个形状分配宏(以智能 table 为例):
宏必须放在 sheet 模块中。
Sub w4()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=Last 4 Weeks"
End Sub
Sub w5()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=5-12 Weeks"
End Sub
Sub w12()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=5-12 Weeks", Operator:=xlOr, Criteria2:="=Last 4 Weeks"
End Sub
Sub w13()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
"=13-20 Weeks"
End Sub
Sub FReset()
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2
End Sub