Pivottabellen aus CSV-Daten ganz ohne Excel

Schnell ohne jedwede Programmierkenntnisse zusammengeklickt, dürfte die bezeichnenderweise meist mit Excel gleichgesetzte Pivottabelle wohl nur wenigen Firmen verzichtbar sein, bietet sie doch Möglichkeit, Daten aus allen möglichen Blickwinkeln per Mausklick zusammenzufassen und flexibel zu strukturieren. Obwohl Microsoft den allgemeinen Begriff laut Wikipedia für einige Jahre mit einem Markenrecht belegte, stellt das (Tabellen-)Pivot zwar einen kommerzieller Erfolg, nicht jedoch die Erfindung dieser Firma dar.

Darüberhinaus bietet Excel (als Default) ein auf Windows beschränktes, im Gegensatz zu OpenDocument proprietäres Format mit schwergewichtigem GUI-Prozess. Allein der Start der Laufzeitumgebung dauert viele (in ständiger Wiederholung "qualvolle") Sekunden; eine Automatisierung wird neben Makros nur über VBA/Win32OLE möglich und bleibt auch dann ohne manuelle Klimmzüge des Text-Im-/Exports auf die aktuelle Datei beschränkt. Verknüpfung mit mehreren Datenquellen ist in jedem Fall aufwändig, mindestens weder wiederverwendbar noch systembruchfrei und eine Anbindung an die Online-Welt, beispielsweise als Backend eines Webservers kaum (GUI) bis unmöglich (Windows); selbst die just erstellte Pivot-Funktion kann nicht aus einer Excel-Datei exportiert oder für weitere Tabellen verallgemeinert werden, sondern möchte für alle Tabellenarten neu zusammengebaut werden.

Möchte man hingegegen große Datenmengen aus einer Vielzahl von Quellen unterschiedlicher Tabellenstruktur vorfiltern, verknüpfen, anreichern, nachverarbeiten, im-/exportieren oder auch nur gemeinsam auf einer Website online darstellen, ggf. via ssh-Befehl im Terminal oder simplem cron-job aktualisieren, bietet sich an, eine weitgehend zu implementieren, deren Algorithmus aus einem einzigen beliebig eigenen Bedürfnisse anpassbaren "freien" bash-Script mypivot (cf. Downloadbereich) ohne kommerzielle Lizenz besteht.

Dieses generiert ein über Kommandozeilenparameter konfigurierbares awk-Script pivot.awk, welches wiederum das Pivot erstellt.

Hierfür machen wir uns folgende Eigenschaften von Tabellen und derer Pivotdarstellung zunutze (Eingabespalten bezeichnen Spalten der Ursprungs-, Ausgabespalten solche der Pivottabelle):



Beispielaufruf: mypivot -c "2 6:7 9 11" -p 12 -i Bericht.csv -t "Scope/Team:Eur:PT" -o Pivot_Projekt_Team_Monate_Eur_PT.txt -m '^Team' (Syntax cf. unten)

Beispiele

Beispieltabelle in Excel und als CSV-Datensatz ...



Mit den CSV-Rohdaten des obigen Beispieles ergeben sich folgende Entsprechungen (als Excel-Pivot lediglich Summation über Eur-Beträge, als Text-Pivot Summation sowohl über Eur-Beträge als auch gebuchte Tage)


Aufruf für Teams => Mitarbeiter => Monate => Buchungen [Eur][PT]








Aufruf für Mitarbeiter => Teams => Monate => Buchungen [Eur][PT]








Aufruf für Monate => Teams => Mitarbeiter => Buchungen [Eur][PT]







Syntax/Verwendung


Impressum und Datenschutzerklärung