Hallo Forum,
ich arbeite "antiquarisch" mit Excel XP und habe eine Frage zur Aktualisierung von Pivot-Tabellen
Ausgangslage:
Ich habe eine Tabelle, daraus erstelle ich ein Pivot.
Soweit so gut.
Wenn ich aber in der Ursprungstabelle nun eine Änderung habe, sei es Ergänzung, Löschung einer Zeile oder Änderung eines Wertes, muss ich dann ein komplett neues Pivot erstellen, oder aber gibt es einen Trick, dass die bestehende Pivot auf den neuesten Stand automatisiert wird?
Wenn ja, wie gehe ich vor?
Axel
Hi,
(05.04.2016, 12:24)axel18 schrieb: [ -> ]Wenn ich aber in der Ursprungstabelle nun eine Änderung habe, sei es Ergänzung, Löschung einer Zeile oder Änderung eines Wertes, muss ich dann ein komplett neues Pivot erstellen, oder aber gibt es einen Trick, dass die bestehende Pivot auf den neuesten Stand automatisiert wird?
im aktuellen Excel geht es so:
- Rechtsklick auf die Pivot und im Kontextmenü "aktualisieren" auswählen.
- oder in der Pivot-Menüleiste Pivot "Analysieren" den Button "Aktualisieren"
Schritt 2 wird im XP vermutlich nicht gehen
Oder per Makro:
Sub Pivot_aktualisieren()
'
' Pivot_aktualisieren: alle Pivot einer einzelnen Tabelle
' © 21.09.2011, Ralf
' Aufgerufen mit Worksheet_Activate() im betreffenden Tabellenblatt
'
Dim pt As PivotTable
'
'Alle Pivot-Tabellen eines Tabellenblattes durchlaufen
For Each pt In ActiveSheet.PivotTables
'Den PivotCache der PT aktualisieren
pt.PivotCache.Refresh
Next pt
End Sub
Sub AllePivotTabellenaktualisieren() ' © Thomas Ramel
'Variablen deklarieren
Dim ws As Worksheet
Dim pt As PivotTable
'Alle Tabellenblätter der Mappe durchlaufen
For Each ws In ActiveWorkbook.Worksheets
'Alle Pivot-Tabellen eines Tabellenblattes durchlaufen
For Each pt In ws.PivotTables
'Den PivotCache der PT aktualisieren
pt.PivotCache.Refresh
Next pt
Next ws
End Sub
Microsoft Excel Objekt Tabelle16Option Explicit
Private Sub Worksheet_Activate()
Call Pivot_aktualisieren
End Sub
Hallo,
du musst einen dynamischen Datenbereich definieren und dann funktioniert auch bei einer Erweiterung der Datentabelle die Aktualisierung.
Schau mal hier:
http://www.online-excel.de/excel/singsel.php?f=69
Da ist der Vorgang beschrieben im Abschnitt 'Abhilfe für alle Excelversionen: Datenbankbereich über Namensdefinition dynamisieren'
Bei aktuellen XL-Versionen ist das deutlich einfacher gelöst - was dir jetzt natürlich nicht viel nützt.
Danke an Euch beide,
über Peters Hinweis habe ich die Lösung am schnellsten erreicht.
Einen schönen Tag wünsche ich Euch
Axel
Hallo Peter und andere Fachleute,
sorry, ich war gestern (13:51h) wohl voreilig!!
Die Aktualisierung klappt, wenn ich in der Haupttabelle Werte ändere.
Füge ich aber Zeilen dieser Tabelle hinzu, dann klappt das nicht.
Ich habe die Formel:
=BEREICH.VERSCHIEBEN($A$1;;;ANZAHL2($A:$A);ANZAHL2($1:$1))
eingegeben und bekomme die Meldung:
Verweis ist ungültig!
Mit Verweis ist wohl "Datenbank" gemeint.
Was mache ich falsch?
Axel
Hallo,
schwierig ohne die Tabelle zu kennen aber du könntest mal folgendes schauen:
Gehe in den Namensmanager und schau dir mal die Formel an die du eingegeben hast. Hat XL evtl. diese Formel in Anführungszeichen gesetzt? Wenn ja, dann entferne mal diese Anführungszeichen und probiere es erneut.
Wenn das nicht hilft könntest du mal eine abgespeckte und anonymisierte Beispielsdatei hochladen damit man sich das direkt am Objekt ansehen kann.
Hallo Peter,
ich habe mal meine Datei "abgespeckt" und rund 40 Datensätze belassen.
Gemäss Empfehlung habe ich über "Einfügen-Namen-Definieren" als Namen "Datenbank" eingegeben. In der unteren Zeile steht dann automatisch:
"=Test!$A$43"
Will ich nun eine Pivot-Tabelle machen, bekomme ich eine Fehlermeldung gemäss Screenshot.
Nochmals, was mache ich unter XP falsch?
Danke
Axel
Hallo,
Zitat: In der unteren Zeile steht dann automatisch:
"=Test!$A$43"
Und dann schreibst du dort, bei "Bezieht sich auf:" einfach die Formel rein die in dem verlinkten Beitrag steht:
=BEREICH.VERSCHIEBEN($A$1;;;ANZAHL2($A:$A);ANZAHL2($1:$1))
Und dann sollte das eigentlich funktionieren.
Hallo Peter,
ich weiss zwar nicht, wie Du das gemacht hast, denn wenn ich es an "meiner" Tabelle genauso nachvollziehe, dann klappt es nicht.
Spielt eventuell die Reihenfolge der Eingabe eine Rolle?
Ich habe
- die Tabelle
- ändere die "EInfügen-Namen-Definition"
- erstelle die Pivot, wobei ich die Formel
=BEREICH.VERSCHIEBEN($A$1;;;ANZAHL2($A:$A);ANZAHL2($1:$1))
eingebe, und dann tut sich nichts??!?!?!?
Ich habe für mich aber einen "billigen" Trick gefunden, indem ich meine Originaldaten in Deine Tabelle kopiert habe.
Füge ich jetzt Zeilen bei und lasse Pivot aktualisieren, dann funktioniert das?
Ich verstehe es nicht!!!
Trotzdem herzlichen Dank für die Unterstützung
Axel