【问题标题】:Changing date ranges in pivot table更改数据透视表中的日期范围
【发布时间】:2013-12-02 03:50:40
【问题描述】:

如何在数据透视表的报告过滤器中自动检查/取消检查日期?

我有一个数据透视表,我需要根据日期范围(过去 7 天、前 7 天)从中提取数据。电子表格有多个数据透视表,点击无数复选框(年、季度、月、每天、取消选中前几天、在下拉菜单中调整大小和滚动)的过程令人抓狂。

我想要一个包含日期的字段,然后运行一个宏来根据该日期修改所选日期。例如在单元格 A1 中输入“11/11”,对于某些表格,仅选中日期范围为 11 月 4 日至 10 日的复选框,而为其他表格选中日期范围为 10 月 28 日至 11 月 3 日的复选框。然后下周,我可以用新日期更新 A1 并从那里开始。

我已经能够编写一个设置日期复选框的宏,但是如果不手动输入当月的实际天数,我就无法更新它。下面是操作日期复选框的代码块。但是我怎样才能使整个工作自动化呢?理想情况下,任何解决方案都会考虑到几个星期跨越两个月。

ActiveSheet.PivotTables(ptNameA20).TableRange1.Select
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
    "[Date].[Date Hierarchy].[Year]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
    "[Date].[Date Hierarchy].[Quarter]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
    "[Date].[Date Hierarchy].[Month]").VisibleItemsList = Array("")
ActiveSheet.PivotTables(ptNameA20).PivotFields( _
    "[Date].[Date Hierarchy].[Day]").VisibleItemsList = Array( _
    "[Date].[Date Hierarchy].[Day].&[2013-11-04T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-05T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-06T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-07T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-08T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-09T00:00:00]", _
    "[Date].[Date Hierarchy].[Day].&[2013-11-10T00:00:00]")`

我尝试使用循环来生成诸如“2013-11-04”、“2013-11-05”等字符串,然后构建一个长字符串(包含“day”行)。但是,我无法使用结果,除非将它们粘贴到宏中(粘贴在前一周的文本块上)。这会导致大量复制和粘贴,同时担心覆盖错误的数据透视表。这比手动选中和取消选中框要好,但仍然不好。

我正在使用 Excel 2010。注意我在 SuperUser 中问过这个问题,但没有收到任何回复。

【问题讨论】:

  • 我需要每天的数据(即生成显示一周中每一天的数据的图表)。此外,报告过滤器中不提供按周分组。据我了解,它仅在行标签中可用。

标签: vba excel excel-2010 pivot-table


【解决方案1】:

虽然我无法深入了解解决此问题的 VBA 解决方案,但我确实找到了一个应该同样快速使用(并且实施更快)的替代方案。

切片器

通过添加两个切片器(过去两周各一个),我可以通过单击拖动来选择日期范围。一个添加到工作表中,它们可以连接到多个数据透视表,甚至分布在多个工作表上。它们还可以设置颜色格式以匹配它们连接到的数据透视表。

注意:如果有人对 VBA 解决方案有任何建议,我仍然希望看到他们。

来自微软的网站:Use slicers to filter PivotTable data

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2023-01-10
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    相关资源
    最近更新 更多