Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot-Tabelle großer Datenmenge

Pivot-Tabelle großer Datenmenge
01.04.2024 14:28:07
MikeBeh
Hallo!

Gegeben ist eine Access-Datenbank aus verknüpften Textdateien, die teilweise mehrere Gigabyte groß sind.
Eine bereits erstellte Abfrage liefert mir ein derartige Liste
  • Startzeit Wert SW WZ
    45197,6496055 811,25 25 24,1780001437292
    45197,6496055 569,19 25 24,2579999612644
    45197,6496055 597,93 25 24,2569997906685
    45197,6496055 730,72 25 24,2480001412332
    45197,6496055 730,72 25 24,2480001412332
    45197,6496055 732,74 25 24,2469999706373
    45197,6496055 732,74 25 24,2469999706373

  • mit in diesem Beispiel knapp 1,9 Mio Zeilen, im Maximum erwarte ich etwa 8 Mio Zeilen.

    Im Ergebnis möchte ich in Excel eine Pivot-Tabelle erstellen:
    die Spalte A "Startzeit im Spaltenfeld
    die Spalte B "Wert" im Zeilenfeld sowie
    Spalte D "WZ" im Wertfeld.
    Spalte A soll gruppiert werden nach "0,00694444", also Zusammenfassung in 10min-Intervallen
    Spalte B soll gruppiert werden 0..5000 in 50er Schritten
    Spalte D wird als Mittelwert dargestellt.
    Datenbank aufbauen, Textdateien verknüpfen, Beziehungen setzen, Abfrage erstellen, ausführen lassen, Excel-Pivottabelle auf Basis der Datenbankabfrage erstellen, Pivottabelle aufbauen, soweit alles kein Problem.

    Das Problem besteht darin, Spalte A ins Spaltenfeld der Pivottabelle zu bekommen, da Excel wegen der Anzahl der Spalten (16384) dies verweigert.
    Auch wenn ich Spalte A erst als Zeilenfeld setze und eine Gruppierung erstelle,
    was im Endeffekt vielleicht 30 Zeilen bzw. im Endausbau des Datensatzes einen ganzen Tag mit 24h * 6 Zeitabschnitte also 144 Zeilen ergibt,
    und dieses gruppierte Zeilenfeld dann in das Spaltenfeld verschieben möchte, streikt Excel.

    Hat jemand eine Idee, ohne dass ich eine VBA-Rechenlösung aufbauen muss?

    Grüße!
    Mike Beh

    13
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    01.04.2024 15:14:35
    Zwenn
    Hallo Mike,

    habe nur Recherchiert, weil ich das Thema interessant finde. Ich habe aber keine Erfahrung mit dem gefundenen Ansatz Power Pivot. Gesucht hatte ich zunächst nach Power BI, weil mir das sofort in den Kopf kam. Damit kenne ich mich aber auch nicht aus.

    Zu Power Pivot kannst Du Dich ja nochmal anderweitig schlau machen. Für erste Infos schau mal hier rein:
    https://www.durchblick-durch-daten.de/power-pivot/excel-eine-millionen-zeilen/

    Vielleicht kennst sich auch einer der Kollegen mit dieser Technik aus.

    Viele Grüße,

    Zwenn
    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    01.04.2024 15:47:31
    MikeBeh
    Hallo!
    Auch wenn im verlinkten Beitrag am Ende nicht auf meine Fragestellung eingegangen wird, ist der Fingerzeig auf PowerPivot sicher schon mal ein Schritt in die richtige Richtung.
    Vielen Dank!
    AW: Pivot-Tabelle großer Datenmenge
    01.04.2024 18:33:55
    MikeBeh
    Beim Erstellen einer PowerPivot-Table kann ich nun die Spalte A der Abfrage als Spaltenfeld auswählen,
    wobei mir Excel zwar den Hinweis "ragt über das Tabellenende hinaus, trotzdem importieren?",
    allerdings kann ich die Spalten dann nicht gruppieren.

    Eine Gruppierung wie sie mit normalen Pivot-Tabellen möglich ist, steht mir in einer so verknüpften DB-Abfrage anscheinend nicht zur Verfügung.

    Ich werde die Textdateien wohl direkt in Excel in ein Datenmodell importieren und wie in Access vernüpfen müssen
    so wie hier beschrieben https://www.prosozial.de/Media/Prosozial/Pdf/Leitfaden%20PowerPivot-Datenmodelle%20-%20Basics.pdf
    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    01.04.2024 15:43:14
    Eifeljoi 5
    Hallo

    Wie dir schon vorgeschlagen wurde entweder Power BI oder Power Query würde dir empfehlen, als Excel Profi müsstest du das hinbekommen.
    Aber mit Uralt Excel ist das so eine Sache.
    AW: Pivot-Tabelle großer Datenmenge
    01.04.2024 15:50:24
    MikeBeh
    :)

    Auch "Uralt"-Excel 2013 beherrscht PiverPivot, da hat MS noch keine Quantensprünge gemacht bis 2021.
    ;)
    AW: Pivot-Tabelle großer Datenmenge
    02.04.2024 09:07:58
    schauan
    Hallöchen,

    bist Du auch der "Herr der Datenbanken" :-) ?
    Eventuell erzeugst Du in Access einen View mit den zusammengefassten / gruppierten Daten und holst die dann rüber.

    Es gibt zwar auch noch in Datenbanken hinterlegte "parametrisierte Abfragen" bzw. QueryDefs, aber da kommst Du wahrscheinlich nur mit VBA ran.
    Siehe z.B.
    https://learn.microsoft.com/de-de/office/client-developer/access/desktop-database-reference/querydef-object-dao
    https://stackoverflow.com/questions/31059553/how-to-run-parameterized-query-from-vba-parameters-sourced-from-recordset

    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    02.04.2024 11:09:52
    MikeBeh
    Hallo!

    Nein, mit Access arbeite ich eigentlich ziemlich selten, bisher hat Excel für alles gereicht.
    Aber in diesem Fall mit 8 Mio Datensätzen in einer Tabelle bot sich das halt an.

    Eine Kreuztabelle kann ich zwar mit Spalte A in Spalten und Spalte B in Zeilen und Spalte D als Mittelwert aufbauen,
    aber genauso wie in einem SQL-View sehe ich keine Möglichkeit,
    nach "rechne im Zeitablauf immer 10min-Abschnitte zusammen" zu gruppieren /"group by",
    was ich in einer Excel-Pivottabelle ja ausrechnen lassen kann.

    Die Kreuztabelle scheitert daher ebenfalls an der Spaltenanzahl.

    Ich werde wohl um eine VBA-Lösung nicht herum kommen,
    aber wenn schon programmiert, dann direkt in einer vernünftigen Programmiersprache mit einem Datenbank-Untersatz.
    Sonst habe ich die Befürchtung, dass VBA arg zu langsam wird.

    Auch im verlinkten Querydef sehe ich nur die strGROUPBY-Eigenschaft, die ebenfalls nicht auf eine gerechnete Gruppierung hinauszulaufen scheint.

    Vielen Dank!
    MikeBeh
    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    02.04.2024 15:14:40
    Yal
    Hallo Mike,

    ein Clustering auf 10 min führt zu 6 Abschnitt pro Std x 24 Std = 144 Spalten.

    Bau eine View in Access, die diese Clustering erzeugt, und mache dein Pivot drauf.

    Tipp:
    =runden(Zeit*144;0)/144
    ergibt ein Zeit auf 10 Min gerundet.

    VG
    Yal
    AW: Pivot-Tabelle großer Datenmenge
    02.04.2024 15:57:35
    schauan
    Hallöchen,

    ch werde wohl um eine VBA-Lösung nicht herum kommen,
    aber wenn schon programmiert, dann direkt in einer vernünftigen Programmiersprache mit einem Datenbank-Untersatz.
    Sonst habe ich die Befürchtung, dass VBA arg zu langsam wird.


    auch deswegen der View. Bin ja inzwischen nicht mehr alleine mit meinem Vorschlag :-) Damit bekommst Du schon aus der DB aufbereitete Daten und Dein Backend hat keinen Aufwand damit.

    Spalte A soll gruppiert werden nach "0,00694444", also Zusammenfassung in 10min-Intervallen
    ok, das versteh ich. Könnte man durch Runden und anschließendes Gruppieren erreichen. Im Prinzip group by(round...) und sollte doch auch ohne 144 Spalten gehen.
    siehe z.B. aber auch das
    https://stackoverflow.com/questions/41908362/how-do-you-group-by-any-time-based-interval

    Spalte B soll gruppiert werden 0..5000 in 50er Schritten
    wenn in Spalte B Werte stehen, kann ich die summieren, Mittelwerte bilden, runden, oder was auch immer, aber dort auch noch gruppieren? Soll das eventuell eine "nachgelagerte" Gruppierung auf Basis der auf 50 gerundeten Werte werden? Dann stimmen Deine Zeitinterwalle ggf. nicht mehr.
    Eventuell nimmst Du dafür dann einen zweiten View, der sich auf den ersten bezieht und den dann Deine Excelabfrage nutzt.

    Anzeige
    AW: Pivot-Tabelle großer Datenmenge
    04.04.2024 12:36:38
    MikeBeh
    @schauan
    mit der View, die mehrere erwähnen verbinde ich eine SQL-View, richtig oder gibts noch eine andere View?

    Und ja, ich möchte sowohl auf Spaltenebene als auch auf Zeilenebene gruppieren und den Mittelwert der Spalte D pro Gruppe Spalte : Gruppe Zeile ermitteln.
    Für eine Pivot-Tabelle kein Problem, nur sind die Datenmengen für Excel eben bei weitem zu groß.

    Access scheitert regelmäßig daran, dass eine entsprechende Abfrage Dateien (ohne Gruppierungen) produziert, die >2GB sind.

    Ich habe mir inwischen eine gleiche Datenbank in sqlite3 aufgebaut und per sql-Abfrage dieselbe Datei als csv ausgeben lassen, diese ist 2,8GB groß.

    Diese verarbeite ich jetzt per Pascal-Programm weiter, gebe eine gruppierte csv aus und lese die dann in excel ein um dann damit weiterzuarbeiten.
    ja ich weiß, "vernünftige Programmiersprache" und so... ;)

    Ich bin mir fast sicher, dass es auch mit Access+Excel geht, aber der Weg über Pascal geht einfach schneller für mich. Zeit drängt.
    Anzeige
    Alterantiv zu View: Power Query
    02.04.2024 16:09:37
    Yal
    Hallo Mike,

    solltest Du in deinem Access nicht zu viel rumbasteln wollen, bietet sich Power Query an. Bei Excel 2013 müsste es nachinstalliert werden.

    PQ ist das Transformationswerkzeug von Excel (Standard in Excel ab 2016). Es nimmt deinen Datenaufruf und Transformation schrittweise auf mit einem Vorschau für jeden Schritt. Der Clou: bei einen Verbidnung zu einer Datenbank wird die Abfrage so optimiert, dass die Rechenzeit maximal auf dem DB stattfindet und die Datentransfer minimalisiert wird, sodass die Performance optimal sind.

    Siehe: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert

    Bei reiner Datenmanipulation (ausser Rekursivität), immer zuerst Power Query.

    VG
    Yal
    Anzeige
    AW: Alterantiv zu View: Power Query
    04.04.2024 12:22:16
    MikeBeh
    @Yal,
    PQ habe ich ebenfalls ausprobiert.
    Hier habe ich das Problem, dass weder in Spalten noch in Zeilen Gruppierungen wie in einer normalen Pivot möglich sind, da diese Option immer ausgegraut ist.
    AW: Alterantiv zu View: Power Query
    08.04.2024 11:43:41
    Yal
    Hallo Mike,

    Du kannst alles gruppieren, solang es "in Zeilen" vorliegt. Mehrere Spalten für ein Sachverhalt (Jan, Feb, Mrz,..) ist das Ergebnis eine Pivotierung. Diese Information sollten zuerst entpivotiert, gruppiert, dann neupivotiert. Die Neupivotierung kann in Power Query oder in Excel vorgenommen werden.

    VG
    Yal

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige