如何通过Excel数据透视表中的单元格公式筛选date?

我正在尝试使用Sql server视图的数据透视表在Excel中做一些报告。 客户的一个要求是能够根据他们select的date范围来筛选报告,这看起来是合理的。 最终用户进程需要相当简单,所以我的首选是有一个单元格开始date和一个结束date,并允许用户input这些刷新表。

有两个问题我没有能够通过:

  1. selectdatefilter似乎没有提供任何方式来引用单元格作为值的来源。 我当时必须把它放进去。

  2. 似乎只有在date字段上分组时才可以定义date范围。 对于一些报告,这违反了规范。 数据透视表的“报告filter”部分似乎只允许我按个别值而不是范围进行过滤。 对于可能有数百个date的实际数据而言,这变得难以pipe理。

我曾经尝试过的一件事是在同一个工作簿中的一个单独的工作表中创build没有任何聚合列的中间表,然后对其进行过滤。 这将这些列正确隐藏在该中间表中,但对从中派生的数据透视表没有影响。

有没有人有如何做这项工作的想法? 这似乎是一个相当明显的用例 – 是否有什么我缺less数据透视表应该如何使用?

简单的事情你可以做的是改变你的数据透视表查询。

当源单元格更改( Worksheet_Changed事件)时,附加" AND WhateverDate > '1/1/1111'" Me.PivotTables("Your pivot").PivotCache.CommandText并刷新主键。

我记得几年前我通过使SQL查询成为dynamic的(即把它作为一个string放在VBA中,并使用具有范围值的单元格在where条件中)来解决了类似的需求。 然后用标有“刷新”的button调用VBA macor。

但是,我很抱歉没有这个代码可用,我只记得一般的想法。

这已经死了一段时间,但我想我会发表一个不同的方法。 将一个公式添加到源表中,该表返回所需内容的“1”,不包含所需内容的“0”,然后在仅过滤“1”的数据透视表中添加一个filter。