大卫有许多数据透视表,这些数据透视表是按年份筛选的。在他的数据中,有一个单独的年份字段(通过Year函数得出的值2016、2017、2018等)。在大多数情况下,他都排除了较早的年龄,而报告了较新的年份。当新的一年到来时,David编辑每个数据透视表并选择最近的一年是一个繁琐的过程。他想知道是否有一种方法可以为数据透视表过滤器指定选择值,因此他不需要进行繁琐的编辑。

可能最简单的方法是在数据透视表的源数据中添加一列。该列可以包含一个简单的公式,用于指定该行是否在要包含在数据透视表中的期望范围内。例如,如果A列包含该行的交易日期,则可以在添加的列中包括以下内容:

=YEAR(A2)>YEAR(NOW())-3

公式的结果为True或False,具体取决于交易是否在前三年内。因此,如果在2018年评估此公式,则2016年,2017年和2018年内的所有交易都将返回True;所有其他人都是错误的。然后,您可以在数据透视表定义中根据此特定列的内容进行过滤,从而确保数据透视表中仅包含那些True行。

如果您喜欢基于宏的解决方案,则可以轻松地开发一种检查每个数据透视表并更改名为“ Year”的数据透视表的方法

因此它等于期望的年份。下面显示了进行此更改的容易程度:

Sub ChangePivotYear()

Dim sht As Worksheet     Dim pvt As PivotTable     Dim iYear as Integer

iYear = 2018     ' Change to desired year     For Each sht In Worksheets         For Each pvt In sht.PivotTables             pvt.PivotFields("Year").ClearAllFilters             pvt.PivotFields("Year").CurrentPage = iYear        Next pvt     Next sht End Sub

宏将字段设置为2018;如果要使用其他年份,只需更改为Year变量分配的值即可。还要注意,该宏会影响整个工作簿中的所有数据透视表。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12571)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。