Wussten Sie …

… dass ein Pivot (franz. „pivoter“ = drehen, schwenken) ein beweglicher Zapfen ist, auf dem militärische Geschütze positioniert werden?

… dass die PivotTable bei Lotus erfunden wurde?

… dass Apple-Gründer Steve Jobs am Konzept der ersten PivotTable mitgebastelt hat?

Ein kurzer Ausflug in die Geschichte soll es beweisen:

1987 startete Pito Salas, Software-Entwickler bei der Advances Technology Group der Firma Lotus Development, ein Projekt (BackBay), das nicht weniger als die Erfindung einer neuen Tabellenkalkulation zum Ziel hatte. Mit seiner Cash-Cow Lotus 1-2-3 war Lotus zwar noch Marktführer (Die Firma machte mit dem Programm zeitweise mehr Umsatz als der Rest der gesamte Software-Industrie), aber angesichts der wachsenden Konkurrenz war es an der Zeit, neue Wege zu gehen. Microsoft Windows wurde bei Lotus fatalerweise als nicht zukunftsträchtig eingeschätzt, was der eigenen Software und später der Firma selbst den Kopf kosten sollte. Die Windows-Version von Lotus 1-2-3 kam viel zu spät, Excel war bereits auf dem Siegeszug und immer mehr Anwender entschieden sich beim Einstieg oder beim Wechsel von MS-DOS zu Windows für das Kalkulationsprogramm von Microsoft.

Pito Salas verglich zunächst zahlreiche mit Standardprogrammen erstellte Tabellenmodelle und fand heraus, dass viele die gleichen Muster verwendeten. Die neue Software sollte Analysen durch den Benutzer einfacher machen, dazu musste sie zwischen Rohdaten und Auswertungsformeln unterscheiden und einfache Befehle wie UMSATZ=VERKAUFSPREIS-KOSTEN ermöglichen. Salas ließ eine erste Version mit einer multidimensionalen Datenbank als Basis und einem User-Interface in C++ programmieren und nannte die neue Software Lotus Improve.

Hier kommt Apple-Gründer Steve Jobs ins Spiel: Auf der Suche nach Software für seinen NEXT-Computer wurde ihm Lotus Improve vorgestellt, und Jobs war sofort begeistert. Die Jobs-Biographie von Walter Isaacson hat dafür zwar nur einen lapidaren Satz übrig ([Lotus-CEO] Mitch Kapor sagte ihm zu, eine neue Tabellenkalkulation für NEXT zu schreiben), aber damit war es nicht getan. Steve Jobs brachte seine Ideen und speziell seine Visionen von einfacher, intuitiver Benutzerführung in das Projekt ein. Salas` Team experimentierte zunächst mit einer Oberfläche, basierend auf mehreren Fenstern, kam dann aber auf die Idee, Tiles (Kacheln) und Icons (Schaltflächen) anzubieten, mit denen sich der Benutzer seine Analysen selbst zusammenstellen konnte. Steve Jobs gefiel die starre Anordnung der Icons nicht, er wollte diese manuell verschiebbar haben. Die Grundidee der PivotTables war geboren.

Lotus Improve wurde trotz begeisterter Rezensionen der Fachpresse ein Flop. Die Bedienung war zu komplex und zu kompliziert, wie Lotus 1-2-3 hatte auch Improve zu viele bunte Schaltflächen und zu wenig selbsterklärende Menübefehle. Auch die spätere Integration als Add-In in Lotus 1-2-3 konnte weder den Niedergang des einen noch des anderen Programms stoppen. Und die Tatsache, dass NEXT nicht über den Status eines Universitäts-Betriebssystems hinauskam, trug sicher auch zum Misserfolg des neuen Kalkulationsprogramms bei. Die erste Windows-Version von Lotus Improve kam 1993 auf den Markt, mit der Versionsnummer 2.1 wurde der Verkauf kurz nach der Übernahme der Firma Lotus Development durch IBM im Jahr 1996 eingestellt.

Spuren von Lotus 1-2-3 finden sich übrigens immer noch im Excel, das von Anfang an bemüht war, mit Lotus so kompatibel wie möglich zu sein (was das Schiff sicher noch schneller sinken ließ). Unter Datei/Optionen/Erweitert finden Sie zum Beispiel eine Rubrik Lotus-Kompatibilität mit dem Schrägstrich als Menütaste (damit startete man in Lotus 1-2-3 die Befehlseingabe) oder die alternativen Befehlstasten (z. B. [Strg]+[Bildtaste] für nächstes Tabellenregister), die allerdings mittlerweile auch so funktionieren). Auch der Apostroph vor der Zahl, der diese zum Text erklärt, stammt von Lotus.

Parallel zum Abstieg von Lotus 1-2-3 startete Microsoft mit seiner Office-Suite von Anfang durch. Excel fegte Lotus 1-2-3 vom Markt und ließ auch kein anderes Programm (SuperCalc, WindowsCalc etc.) vom großen Software-Umsatzkuchen naschen. Mit jeder neuen Version kamen neue Funktionen hinzu (eine gute Übersicht über die Historie bei Klaus Busse: http://www.kmbuss.de/Excel-CD/historie.htm). Die Version 4.0 stellte den Vorläufer der PivotTable, die Kreuztabelle, die im Ansatz schon das PivotTable-Konzept erkennen ließ, aber nicht ganz ausgereift und auch fehlerhaft war. Mit Excel 5.0 kam die PivotTable, und die weise Entscheidung, die Schritte von der Rohdatenauswahl bis zur Fertigstellung in einen Assistenten einzubinden, machte sie für den Anwender praktikabel. Das Prinzip war so einfach wie revolutionär, die PivotTable verzichtete auf Fachgesimpel, nannte die Bereiche nicht Dimensionen oder Perioden, sondern Zeile, Spalte, Seite und Daten und verlangte keine einzige Formel oder Bereichsangabe (außer der Datenquelle, und die wurde aus der Liste heraus erkannt oder konnte mit der Maus markiert werden).

Heute ist die PivotTable das wichtigste Analysewerkzeug von Excel. Von der Umsatzanalyse des Kleinunternehmers bis zur Finanzplanung im Controlling oder der Altersstrukturanalyse im Personalbereich – mit PivotTables sind Listen schnell und sicher ausgewertet.

Hier einige nützliche Tipps für den Umgang mit PivotTables:

Alle PivotTables automatisch aktualisieren

PivotTables aktualisieren sich nicht automatisch. Ändert sich die Datenquelle, kommen neue Daten hinzu oder werden Datensätze gelöscht, weiß die PivotTable zunächst nichts davon. Erst nach der Aktualisierung über PivotTable-Tools/Optionen/Daten/Aktualisieren wird sie die neuen Daten wieder korrekt analysieren. Ein kleines Makro bringt sie auf die sichere Seite, es aktualisiert alle PivotTables auf einem Tabellenblatt, sobald dieses aktiviert wird:

  • Starten Sie mit [Alt]+[F11] Ihren Visual Basic-Editor.
  • Klicken Sie im Projekt-doppelt auf den Eintrag DieseArbeitsmappe.
  • Schreiben Sie dieses Ereignismakro, das vor dem Öffnen der Arbeitsmappe aktiv wird und das Ereignis OnSheetActivate besetzt. Achten Sie auf die Apostrophe vor und nach ThisWorkbook.Name:
Private Sub Workbook_Open()
  Application.OnSheetActivate = _
  "'" & ThisWorkbook.Name & "'!DieseArbeitsmappe.RefreshAllPivots"
End Sub

Im gleichen Modulblatt fügen Sie das Makro ein, das beim Wechsel auf ein Tabellenblatt alle darin enthaltenen PivotTables aktualisiert:

Sub RefreshAllPivots()
 Dim intPivots As Integer
 For intPivots = 1 To ActiveSheet.PivotTables.Count
  ActiveSheet.PivotTables(intPivots).PivotCache.Refresh
 Next
 MsgBox "Alle PivotTables aktualisiert", vbInformation
End Sub

Pivot1

Die MsgBox-Anweisung können Sie natürlich später entfernen. Achtung: Vergessen Sie nicht, die Arbeitsmappe im Format „Excel-Arbeitsmappe mit Makros“ abzuspeichern (Dateiendung xlsm), sonst wirft Ihnen Excel die Makros wieder raus.

Übrigens: Wenn Sie mit der rechten Maustaste in eine PivotTable klicken und im Kontextmenü PivotTable-Optionen wählen, können Sie im Register Daten die Option Aktualisieren beim Öffnen der Datei setzen.

Alte Elemente entfernen

Eine unangenehme Eigenschaft hat die PivotTable: Elemente aus der Datenquelle werden manchmal weiter angezeigt, auch wenn diese bereits aus der Datenquelle verschwunden sind. Erst mit der Aktualisierung verschwinden diese „Geisterelemente“ dann. Googelt man nach Lösungen, bieten die einschlägigen Foren meist Makros an, die diese Aufgabe über eine Schleife mit dieser Anweisung lösen:

PivotTable(1).PivotCache.MissingItemsLimit = xlMissingItemsNone

Aber – das geht einfacher:

  • Klicken Sie mit der rechten Maustaste in die PivotTable und wählen Sie PivotTable-Optionen.
  • Schalten Sie um auf das Register Daten. Hier finden Sie die Option Elemente beibehalten, die aus der Datenquelle gelöscht wurden. Schalten Sie mit dem Listenfeld auf die Option Keine, und Ihre PivotTable wird keine alten Elemente mehr anzeigen.

Pivot2

Dynamischer Bereich für die Datenquelle

Das Problem mit der Datenquelle, die nicht automatisch neu zugewiesen wird, wenn sich die Basisdaten ändern, ist keines mehr. Absolute Bezüge wie $A1:$E350 weist der PowerUser sowieso nicht zu, für PivotTable-Datenquellen benutzt er ausschließlich  Bereichsnamen. Logisch, denn ein Bereichsname ist schneller repariert als ein Dutzend Datenquellenzuweisungen in den PivotTables. Ändert sich der Bereich aber ständig, musste sich der Bereichsname seinen Bezug dynamisch berechnen, und das sieht für eine Liste, die in Zelle A1 beginnt, 5 Spalten und eine nicht fixierbare Anzahl Zeilen hat, so aus:

  • Drücken Sie [Strg]+[F3] für den Namens-Manager. Klicken Sie auf Neu.
  • Tragen Sie diesen Bereichsnamen ein:
Name: rngPivotDatenquelle
Bereich: Arbeitsmappe
Bezieht sich auf: =BEREICH.VERSCHIEBEN($A$1;0;0;ANZAHL2($A:$A);5)

Aber wie gesagt, das Problem ist keines mehr, und ab der Version 2007 brauchen Sie auch keine dynamischen Bereiche mehr. Erklären Sie die Liste einfach zur Tabelle (Einfügen/Tabelle, mit Überschriften) und weisen Sie der Tabelle über Tabellentools/Entwurf einen passenden Namen zu. Diesen verwenden Sie als Datenquelle für die PivotTables. Tabellen haben nämlich die nützliche Eigenschaft, ihre Namen selbständig an die Anzahl der Datensätze anzupassen.

Pivot3

Und wo lernt man sowas? Natürlich bei einem PowerUser-Seminar bei EXCELLENTControlling (www.excellent-controlling.de) oder in einem der Bücher: Excel 2013 Praxisbuch oder Excel Formeln und Funktionen.