Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

PQ dynamisch Tabelle umstellen

PQ dynamisch Tabelle umstellen
30.03.2023 23:58:37
ralf_b

Hallo in die Runde,

Ich benötige etwas Hilfe bei einer PowerQuery Problemstellung:
Zwei CSV Dateien mit je einer Tabelle mit Messwerten exportiert aus einer Datenbank
Diese möchte ich vergleichen.
Dazu separiere ich die Daten soweit das nur noch die Spalten für Zeit, Messwert und Sorte übrigbleibt
mittels Zusammenführen über die Zeitspalten verbinde ich die beiden Tabellen um eine zeitliche Zuordnung der Messwerte zu erhalten.
Das wäre dann die Ausgangslage. Siehe Datei linke Tabelle.

https://www.herber.de/bbs/user/158520.xlsx

Erreichen möchte ich eine Umstellung der Tabelle, sodas jede Sorte eine Spalte mit Messwerten bildet und das für jede der beiden Quellen.
Das soll dann die Basis für Diagrammauswertungen sein.
Da die Sorten unterschiedlich Viele sein können, schwebt mir eine Dynamik vor, in dem die Sorten als eindeutige Liste aufbereitet werden und dann per Schleife alle Sorten als je eine eigene Spalte aneinander gefügt werden. Siehe rechte Tabelle.
Ich habe bzgl. Schleifen schon recherchiert und bin auf eine Anleitung gestoßen, die mir aber einfach zu hoch ist, um das umsetzen zu können.
https://www.data-insights.de/schleifen-in-m-rekursion/
Vielleicht geht das ja auch gar nicht. Hier bitte ich um Lösungsideen.

Gruß

rb

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PQ dynamisch Tabelle umstellen
31.03.2023 03:24:44
Eifeljoi5
Hallo

Vorsclag meinerseits:
Mit PQ müsste es auch machbar sein.
Aber warum keine Auswertung mit Pivot? Siehe Bild
Userbild


AW: PQ dynamisch Tabelle umstellen
31.03.2023 06:53:44
ralf_b
Moin,

danke für den Input.
Warum nicht mit Pivot? Damit kenne ich mich nicht so wirklich aus. Aus irgend einem Grund ist Pivot für mich bisher nicht zugänglich.
Aber ich versuche mal es so hinzubekommen wie du es gezeigt hast.
Eine PQ Lösung wäre aber mir aktuell lieber.


Anzeige
AW: neue Datei
31.03.2023 19:24:17
Luschi
Hallo ralf_b,

habe Deine Ergebnis-Abfrage erst mal geordnet, um zu sehen, was da alles passiert und dann in eine List.Accumulate-Schleife gepackt.
Die Schleife läuft so oft, wie es Einträge in 'lst_Sorten' gibt. Das Ergebnis jedes Schleifendurchlaufes landet automatisch in 'st' von (st, cur) => und und ist somit wieder Ausgangspunkt des neuen Durchlaufs.

https://www.herber.de/bbs/user/158532.xlsx

Viel Spaß beim Durchackern des kurzen PQ-M-Codes wünscht
Luschi aus klein-Paris


Anzeige
AW: neue Datei
01.04.2023 00:48:48
ralf_b
Hallo Luschi,

einfach nur wow
vielen Dank für dieses tolle Stück M-Code. Da werde ich wohl noch ne Menge Spass mit haben.
Ich verstehe den Code grundsätzlich, aber nicht im Detail. Das liegt an dieser List.accumulate wo man so gut wie alles reinstopfen kann und es irgendwie wieder herausbekommt.

gruß

rb


AW: neue Datei
01.04.2023 06:08:28
Luschi
Hallo Hallo ralf_b,

nach 1 bißchen weitertüfteln sieht mein Abfrageergebnis so aus:

let
    lst_Sorten_x =List.RemoveNulls(List.Distinct(tab_basis[Sorte])),
    ergebnis = List.Accumulate(
        lst_Sorten_x,  //bestimmt Anzahl der Schleifen-Durchläufe
                       //je Durchlauf wird 1 Wert aus dieser Liste an 'cur' übergeben (gemäß Reihenfolge)
        tab_Zeit,      //dieser Parameter wird zu Beginn an 'st' übergeben
        (st, cur) =>
                let 
                    tab = fn_filteredtab(cur),
                    Quelle_2 = Table.NestedJoin(st, {"Zeit"}, tab, {"Zeit"}, cur, JoinKind.LeftOuter) 
                in
                    /*
                        dieses Zwischenergebnis wird automatisch der neue 'st'-Inhalt und muß
                         nicht mit st =  Table.ExpandTableColumn(Quelle_2, cur, {Table.ColumnNames(tab){1}}
                    */
                    Table.ExpandTableColumn(Quelle_2, cur, {Table.ColumnNames(tab){1}},
                        {Text.Combine({Table.ColumnNames(tab){1}, cur}, "-")}))

in
    ergebnis
Gruß von Luschi
aus klein-Paris


Anzeige
AW: neue Datei
01.04.2023 11:20:39
Eifeljoi5
Hallo Luschi

Ein wirklich toller M-Code.
Aber gebe mir mühe die Erweiterung für Quelle2 zu machen was mir noch nicht gelingt bisher.
Trägt man bei deinem in Quelle2 was ein, so werden diese noch nicht angezeigt.


nachgefragt
01.04.2023 11:26:02
ralf_b
Hallo Luschi,

nochmals Dank an Dich.
Es sieht so einfach aus und ich merke wieder wieviel PQ-Verständnis mir noch fehlt.
Ich baue es jetzt in mein Gesamtkonstrukt ein.

gruß

rb


sorry falscher Betreff.... wegen Quelle2
01.04.2023 11:29:32
ralf_b
und was Quelle2 angeht. Das kann ich auch als eigenständige Abfrage ablaufen lassen und später die Ergebnisse mergen.
Eine Schleife um die aktuelle Schleife wäre nice aber da blicke ich vielleicht in zwei Wochen nicht mehr durch.


Anzeige
AW: neue Datei
31.03.2023 20:34:30
Eifeljoi5
Hallo

Anbei meine beiden Versuche.
https://www.herber.de/bbs/user/158535.xlsx
Aber nicht desto trotz wenn csv Dateien als Grundlage sind, dann würde ich auch diese direkt mit PQ einlesen.


AW: neue Datei
01.04.2023 01:09:29
ralf_b
Hallo Eifeljoi,

auch dir danke für deine Mühe.
ich werde da wohl noch etwas brauchen bis ich es durchschaut habe. Aber dafür kann ich wieder etwas dazu lernen.
Die csv-dateien kann ich ja schon eingelesen, deshalb habe ich das nicht mit in die Aufgabe gegeben.

gruß

rb

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige