Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
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 berechnete Spalte dyn. Spaltennamen

PQ berechnete Spalte dyn. Spaltennamen
16.08.2022 15:39:20
Lars
Hallo zusammen,
ich bin auf folgendes Problem gestoßen:
Ich möchte am Ende einer Tabelle eine berechnete Spalte mittels Power Query einfügen, die immer die Differenz der letzten beiden Spalten berechnet. Ich habe etliche Versuche gestartet dies umzusetzen. Leider sind alle gescheitert.
Ich benötige das, um immer eine Differenz von Werten (z.B. Bestellungen pro Kunde und Tag) berechnen zu können. Hier soll dann immer die Differenz der Bestellungen des aktuellen Tages zu den Bestellungen des Vortages berechnet werden. Diese Differenz finden Sie in der angehängten Datei in Spalte G.
Am Folgetag soll dann beispielhaft die Differenz der Werte vom 11.01.2022 zu denen vom 10.01.2022 berechnet werden.
Über einen Lösungsvorschlag wäre ich echt dankbar.
https://www.herber.de/bbs/user/154674.xlsx
Freundliche Grüße
Lars

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: reicht ne interaktiv aufgestellte Lösung? ...
18.08.2022 10:40:31
neopa
Hallo Lars.
... mit direkten M-Code-Einsatz geht es zwar zumindest kürzer und schneller aber eine solche kann ich Dir nicht aufzeigen.
Interaktiv zusammengestellt zunächst folgende Abfrage Diff

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Kunde", type text}, {"06.01.2022", Int64.Type}, {"07.01.2022", Int64.Type}, {"08.01.2022", Int64.Type}, {"09.01.2022", Int64.Type}, {"10.01.2022", Int64.Type}}),
#"Tiefer gestufte Header" = Table.DemoteHeaders(#"Geänderter Typ"),
#"Transponierte Tabelle" = Table.Transpose(#"Tiefer gestufte Header"),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Transponierte Tabelle", [PromoteAllScalars=true]),
#"Sortierte Zeilen" = Table.Sort(#"Höher gestufte Header",{{"Kunde", Order.Descending}}),
#"Tiefer gestufte Header1" = Table.DemoteHeaders(#"Sortierte Zeilen"),
#"Hinzugefügter Index" = Table.AddIndexColumn(#"Tiefer gestufte Header1", "Index", 0, 1, Int64.Type),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügter Index",{"Column1"}),
#"Transponierte Tabelle1" = Table.Transpose(#"Entfernte Spalten"),
#"Sortierte Zeilen1" = Table.Sort(#"Transponierte Tabelle1",{{"Column1", Order.Ascending}}),
#"Höher gestufte Header1" = Table.PromoteHeaders(#"Sortierte Zeilen1", [PromoteAllScalars=true]),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Höher gestufte Header1",{{"0", type text}, {"1", Int64.Type}, {"2", Int64.Type}, {"3", Int64.Type}, {"4", Int64.Type}, {"5", Int64.Type}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ1", "Diff", each [1]-[2]),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"1", "2", "3", "4", "5"})
in
#"Entfernte Spalten1"
Dann die Ergebnisabfrage, die das Ergebnis in einer Ergebnistabelle zusammenstellt:

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Kunde", type text}, {"06.01.2022", Int64.Type}, {"07.01.2022", Int64.Type}, {"08.01.2022", Int64.Type}, {"09.01.2022", Int64.Type}, {"10.01.2022", Int64.Type}}),
#"Zusammengeführte Abfragen" = Table.NestedJoin(#"Geänderter Typ", {"Kunde"}, Diff, {"0"}, "Diff", JoinKind.LeftOuter),
#"Erweiterte Diff" = Table.ExpandTableColumn(#"Zusammengeführte Abfragen", "Diff", {"Diff"}, {"Diff.Diff"})
in
#"Erweiterte Diff"
Gruß Werner
.. , - ...
Anzeige
AW: reicht ne interaktiv aufgestellte Lösung? ...
18.08.2022 13:27:04
Lars
Hallo Werner,
Super, vielen Dank für die Hilfe. Ich schaue mir den Code über das Wochenende dann in Ruhe an und gebe nochmal Rückmeldung.
VG
Lars
AW: bitteschön, doch ...
18.08.2022 14:10:21
neopa
Hallo Lars,
... solltest Du dann dazu noch Rückfragen an mich haben, könnte ich Dir frühestens am 30.8 antworten. Dann ist der der thread jedoch bereits inaktiv im Archiv gelandet. Es sei denn, Du stellst Die Nachmittag/ Mittwoch Vormittag nächster Woche noch (D)einen Beitrag hier im thread ein. Alternativ eröffne übernächste Woche einen neuen thread und "spreche" mich mit meinen Usernamen in der Betreffzeile direkt an.
Gruß Werner
.. , - ...
Anzeige
AW: ergänzend angemerkt ...
18.08.2022 15:00:24
neopa
Hallo Lars,
... nachdem ich nun Deinen "neuen" thread hier: https://www.herber.de/forum/archiv/1892to1896/1894924_Dynamische_Spaltennamen_Power_Query.html entdeckt habe, ergänze ich meinen Lösungsvorschlag hier noch wie folgt:
In der Abfrage Diff vor dem Schritt: #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Ersetzter Wert", "Diff", each [1]-[2]),
füge noch folgenden Schritt ein:

#"Ersetzter Wert" = Table.ReplaceValue(#"Geänderter Typ1",null,0,Replacer.ReplaceValue,{"1", "2"}),
damit wird gewährleistet, dass auch eine Differenz ermittelt wird, falls in einem der beiden letzten Datenspalten kein Wert erfasst wurde.
Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige