Excel-使用切片器基于列更改数据透视图

Excel-使用切片器基于列更改数据透视图,excel,pivot-table,pivot-chart,Excel,Pivot Table,Pivot Chart,我有大量数据(200k+行和10+列),以这种格式编译: Month Date Time Value1 Value2 Value3 Jan-18 1/1/2018 12:00:00 AM 10 20 30 Jan-18 1/1/2018 12:01:00 AM 13 23 33 etc... 我使用了数据透视表和数据透视图以及切片器,使我的图表能够根据月

我有大量数据(200k+行和10+列),以这种格式编译:

Month    Date        Time          Value1    Value2    Value3
Jan-18   1/1/2018    12:00:00 AM     10        20        30
Jan-18   1/1/2018    12:01:00 AM     13        23        33
etc...
我使用了数据透视表和数据透视图以及切片器,使我的图表能够根据月份对数据进行排序。但是,我希望能够选择要显示的列,例如:切片器,它允许我根据我的选择显示Value1或Value2

对我来说,一种有效的方法是以这种方式编译数据:

Month    Date        Time          Type    Value
Jan-18   1/1/2018    12:00:00 AM    1       10 
Jan-18   1/1/2018    12:01:00 AM    1       13  
Jan-18   1/1/2018    12:00:00 AM    2       20 
Jan-18   1/1/2018    12:01:00 AM    2       23  
这使我能够根据类型使用切片器进行排序。这不是一个非常可行的选择,因为数据是不断添加的,这样做只是一种痛苦

有更好的方法吗?我已经搜索过了,但没有找到解决方案,如果您有任何意见,我将不胜感激


干杯

是的,您可以使用我之前发布的VBA来实现这一点。它要求您创建一个“harvester”数据透视表,其中只包含要交换的列,这样您就可以创建一个切片器,从中触发代码。但是我很肯定这会让你完全按照你的意愿去做。

谢谢你的回复!我已经完成了这些步骤,但我不太明白如何实现它。我对VBA很陌生。我在您的代码后面创建了宏,但当我尝试运行它时,它不会显示在excel的“宏”菜单上。第一个子模块称为“sub”
Pivots\u SwitchFields
位于标准代码模块中。第二个子模块称为
Workbook\u sheet pivottableupdate
,它位于ThisWorkbook模块中,而不是标准代码模块。第二个子系统是一个事件处理程序,“侦听”切片器的更改,然后自动运行第一个子系统。宏菜单中没有显示任何内容,因为您不需要手动运行Sub。我已相应地粘贴了代码,但在这行代码中收到了一个错误:“运行时错误'1004':对象“\u工作表”的方法“数据透视表”失败:
Set pt=wks.PivotTables(拆分(strInstructions,“|”)(2))
。我使用了与您相同的示例,Sheet1(数据源)、Sheet2(数据透视表1源代码)、Sheet3(隐藏数据透视源代码)和Sheet4(隐藏数据透视表,以开关字段| Sheet1 |数据透视表1 |值作为数据透视表名称)好的。可以再次运行代码,然后在即时窗口类型中运行吗?输入指令,按Enter键并告诉我输出,然后对执行相同操作?我也是。如果在VBA编辑器中看不到称为即时窗口的窗口,则从顶部的选项中选择“视图>即时窗口”。“strInstructions”给出了:SwitchFields | Sheet1 | PivotTable1 |值,?wks.name给出了错误:对象方差或未设置块变量。我的数据透视表1(来源)中没有“值”,这可能是导致错误的原因吗?如果这是问题所在,那么如何对数据透视表中的列进行分组,如链接中的示例中所示?