【问题标题】:Keep PivotTable report filter after data refresh数据刷新后保留数据透视表过滤器
【发布时间】:2015-12-04 20:19:02
【问题描述】:

我有一个从外部数据库查询创建的数据透视表(实际上是五个数据透视表,每个数据透视表都在自己单独的工作表上)。每个数据透视表代表一天(即今天、明天、今天+2、今天+3 和今天+4)。对于前两个的报告过滤器,我们使用今天和明天的日期范围过滤器,它会自动过滤数据并允许其翻转。我们为其他三天创建了自定义日期范围,但是在每次外部数据刷新时,我们都必须进入每个工作表并从所有到指定的时间范围重新选择报告过滤器。这些数据每天都会滚动,因此我们可以看到接下来 96 小时的阵容。

有没有办法保留数据透视表报表筛选条件(VBA 和宏都可以接受,尽管我们对这两者都还很陌生)?

或者是否有一些超级秘密的方法可以将报告过滤器从今天和明天扩展到一个时间范围(48 小时、96 小时)而不是下个月?

我需要将这些日子分开,所以下周将无法工作,因为所有日子都将填充在一个页面上。

【问题讨论】:

    标签: sql-server excel excel-2010 pivot-table


    【解决方案1】:

    没有看到一个真实的例子很难说,但是如何将 query 更改为 relative 日期索引,即类似于

    SELECT DATEDIFF('day', GETDATE(), report_dt) AS days_from_today FROM reporting_table
    

    然后在这个相对日期索引上设置您的报告过滤器(days_from_today = 1 表示明天等)?您始终可以在报告=TODAY() + days_from_today 中创建另一个 Excel 列,以获取您的绝对日期。 (假设您只是出于报告目的处理一个时区。)

    即,不要滚动过滤器,而是将过滤器保持在恒定索引上,并让索引覆盖滚动日期范围。我不确定 Excel 是否足够聪明,可以做滚动过滤器。

    【讨论】:

    • 感谢您的回复。不幸的是,我们是一家物流公司,可在全国范围内送货,并与所有时区合作。此外,由于信息的敏感性,我无法发布实际的电子表格。我可以想出一个模拟表,其中包含公式和假公司信息而无需查询,但不确定它是否会正确计算。我再次感谢您的建议,我将由我的同事运行它(这是我们之间的合作,因为他运行查询的服务器端),看看这是否是一个可行的选择,如果我们可以使用一个为此目的的时区。谢谢
    • @JuStin 好的,不要太在意时区问题。在 SQL Server 中有一个 datetime 和一个 date 数据类型。您的问题并未具体说明查询返回的类型。如果它只是一个date 数据类型,那么上面概述的方法应该没问题。否则,您可能需要将report_dt 替换为CONVERT(date, report_dt),并注意输出特定于您的数据仓库使用的任何语言环境(例如,GMT)。此外,最好包含您提到的“假”数据示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多