1

我正在尝试使用 Sql 服务器视图的数据透视表在 Excel 中制作一些报告。客户要求之一是能够根据他们选择的日期范围过滤报告,这似乎是合理的。最终用户流程需要相当简单,所以我的偏好是有一个单元格作为开始日期,一个单元格作为结束日期,并允许用户输入这些内容并刷新表格。

有两个问题我无法解决:

  1. 选择日期过滤器似乎没有为我提供任何方法来引用单元格作为值的来源。我必须当时把它放进去。

  2. 如果我在日期字段上进行分组,似乎只能定义日期范围。对于某些报告,这违反了规范。数据透视表的报告过滤器部分似乎只允许我按单个值而不是范围进行过滤。这在可能有数百个日期要经过的真实数据上变得难以管理。

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

有人对我如何使这项工作有想法吗?这似乎是一个相当明显的用例 - 关于应该如何使用数据透视表,我是否遗漏了什么?

4

3 回答 3

1

您可以做的最简单的事情是动态更改您的数据透视表查询。

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

于 2010-08-27T18:41:24.267 回答
0

我记得几年前我通过使 SQL 查询动态化(即在 VBA 中将其作为字符串放在一起,并在 where 条件中使用具有范围值的单元格)解决了类似的要求。然后使用标有“刷新”的按钮调用 VBA macor。

但我很抱歉不再有这个代码可用,我只记得大致的想法。

于 2010-08-27T18:37:55.677 回答
0

这已经死了一段时间,但我想我会发布一种不同的方法。向源表中添加一个公式,为您想要的东西返回一个“1”,为您不想要的东西返回一个“0”,然后在数据透视表中添加一个过滤器,只过滤“1”。

于 2016-05-11T13:44:09.887 回答