Pivot aktualisieren
#1
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
Top
#2
Hi,

(05.04.2016, 13: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:
  1. Rechtsklick auf die Pivot und im Kontextmenü "aktualisieren" auswählen.
  2. 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 Tabelle16
Option Explicit 
 
Private Sub Worksheet_Activate() 
   Call Pivot_aktualisieren 
End Sub 
 
 

Top
#3
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.
Gruß
Peter
Top
#4
Danke an Euch beide,

über Peters Hinweis habe ich die Lösung am schnellsten erreicht.

Einen schönen Tag wünsche ich Euch
Axel
Idea
Top
#5
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
Huh
Top
#6
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.
Gruß
Peter
Top
#7
Hola,

siehe auch:

http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=85820#a123x

Gruß,
steve1da
Top
#8
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


Angehängte Dateien Thumbnail(s)
   

.xls   Test.xls (Größe: 33 KB / Downloads: 2)
Top
#9
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.


Angehängte Dateien
.xlsx   Kopie von Test-1.xlsx (Größe: 16,36 KB / Downloads: 5)
Gruß
Peter
Top
#10
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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste