David hat viele PivotTables, die nach Jahr gefiltert werden. In seinen Daten gibt es ein separates Feld für das Jahr (Werte 2016, 2017, 2018 usw., abgeleitet über die Jahresfunktion). In den meisten Fällen schließt er ältere Jahre aus und berichtet über neuere Jahre. Wenn ein neues Jahr kommt, ist es für David ein mühsamer Prozess, jede PivotTable zu bearbeiten und das letzte Jahr auszuwählen. Er fragt sich, ob es eine Möglichkeit gibt, die Auswahlwerte für einen PivotTable-Filter anzugeben, damit er nicht die mühsame Bearbeitung durchführen muss.

Der einfachste Weg, dies zu tun, besteht darin, den Quelldaten für Ihre PivotTable eine einzelne Spalte hinzuzufügen. Die Spalte kann eine einfache Formel enthalten, die angibt, ob die Zeile innerhalb des gewünschten Bereichs für die Aufnahme in die PivotTable liegt. Wenn beispielsweise Spalte A das Transaktionsdatum für die Zeile enthält, können Sie Folgendes in die hinzugefügte Spalte aufnehmen:

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

Das Ergebnis der Formel ist entweder Richtig oder Falsch, je nachdem, ob die Transaktion innerhalb der letzten drei Jahre erfolgt oder nicht. Wenn diese Formel im Jahr 2018 ausgewertet wird, geben alle Transaktionen innerhalb von 2016, 2017 und 2018 True zurück. Alle anderen wären falsch. Anschließend können Sie innerhalb Ihrer PivotTable-Definition basierend auf dem Inhalt dieser bestimmten Spalte filtern und so sicherstellen, dass nur diese True-Zeilen in der PivotTable enthalten sind.

Wenn Sie eine makrobasierte Lösung bevorzugen, können Sie problemlos eine entwickeln, die jede der PivotTables untersucht und das PivotField mit dem Namen „Year“

ändert so dass es gleich einem gewünschten Jahr war. Das Folgende zeigt, wie einfach es ist, eine solche Änderung vorzunehmen:

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

Das Makro setzt das Feld auf 2018; Wenn Sie ein anderes Jahr verwenden möchten, ändern Sie einfach, was der Variablen Jahr zugewiesen ist. Beachten Sie auch, dass das Makro alle PivotTables in der gesamten Arbeitsmappe betrifft.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (12571) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.