为枢轴 table 到 select 多个值创建切片器

Creating a slicer for pivot table to select multiple values

我有一个来自 excel 的数据集,我为它创建了一个枢轴 table,如下所示:

因此,我根据数据创建了一个数据透视表 table,以对原始数据中的每个名称的检查求和。我想在这里使用时间作为切片器 - 但如您所见,如果我想 select 最近 12 周的数据,我将需要过滤到最近 4 周和 5-12 周。如果我想 select 所有时间范围,我将需要检查切片器中的所有项目。

只是想知道是否有办法创建一个切片器,选项为:

  1. 过去 4 周(如果单击此按钮,我将使用时间 = 过去 4 周

    过滤我的数据
  2. 过去 12 周(如果单击此按钮,我将使用时间 = 过去 4 周 时间 = 5-12 周来过滤我的数据)

  3. 全部(如果我点击这个我会 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