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

Power Query immer Monat 1-12

Power Query immer Monat 1-12
16.12.2022 14:21:14
Henry
Hallo liebes Forum,
vielleicht kann mir ja hier jemand helfen.
Ich würde gerne in Power Query für jeden Profit Center immer die Monate 1-12 auflisten.
Die Ursprungswerte sollen natürlich den entsprechenden Monaten zugeordnet werden.
Vielleicht hat jemand einen Rat.
Ich habe mal eine Excel-Datei beigefügt, die die Ausgangslage und das gewünschte Ergebnis recht gut zeigt.
https://www.herber.de/bbs/user/156780.xlsx
Über eure Unterstützung wäre ich sehr dankbar.
LG Henry

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Power Query immer Monat 1-12
16.12.2022 15:27:10
ChrisL
Hi
Bezogen auf diesen Beitrag, habe ich schon eine Lösung. Das Vorgehen aber auf den Ansatz von Luschi umzumünzen, könnte herausfordernd werden. Vielleicht meldet sich Luschi ja noch separat mit einer Lösungsvariante.
https://www.herber.de/forum/archiv/1908to1912/1910841_YTD_in_Power_Query.html
A2:C9 markieren, Menü Daten, Aus Tabelle/Bereich.
Danach in den erweiterten Editor wechseln und den M-Code wie folgt ersetzen:

let
Quelldaten = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
Hilfstabelle1 = Table.FromList(List.Distinct(Quelldaten[Profit Center]), Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Hilfstabelle2 = Table.AddColumn(Hilfstabelle1, "Betrag", each 0),
Hilfstabelle3 = Table.AddColumn(Hilfstabelle2, "Monat", each {1..12}),
Hilfstabelle4 = Table.ExpandListColumn(Hilfstabelle3, "Monat"),
Hilfstabelle5 = Table.RenameColumns(Hilfstabelle4, {"Column1", "Profit Center"}),
Quelle = Table.Combine({Quelldaten, Hilfstabelle5}),
#"Gruppierte Zeilen" = Table.Group(Quelle, {"Profit Center", "Monat"}, {{"Betrag", each List.Sum([Betrag]), type number}}),
#"Sortierte Zeilen" = Table.Sort(#"Gruppierte Zeilen",{{"Profit Center", Order.Ascending}, {"Monat", Order.Ascending}}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Sortierte Zeilen",{"Profit Center", "Betrag", "Monat"})
in
#"Neu angeordnete Spalten"
cu
Chris
Anzeige
AW: Power Query immer Monat 1-12
16.12.2022 15:35:32
Henry
Hallo Chris,
ja du hast Recht. Der nächste Schritt wäre tatsächlich die kumulierten Werte zu ermitteln.
Kann ich deinen Schritt nicht einfach vor Luschis Schritte einfügen?
LG Henry
AW: Power Query immer Monat 1-12
16.12.2022 16:16:09
ChrisL
Hi
"Kumulieren" (Auffüllen) kann ich auch noch.

let
Quelldaten = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
Hilfstabelle1 = Table.FromList(List.Distinct(Quelldaten[Profit Center]), Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Hilfstabelle2 = Table.AddColumn(Hilfstabelle1, "Betrag", each 0),
Hilfstabelle3 = Table.AddColumn(Hilfstabelle2, "Monat", each {1..12}),
Hilfstabelle4 = Table.ExpandListColumn(Hilfstabelle3, "Monat"),
Hilfstabelle5 = Table.RenameColumns(Hilfstabelle4, {"Column1", "Profit Center"}),
Quelle = Table.Combine({Quelldaten, Hilfstabelle5}),
#"Gruppierte Zeilen" = Table.Group(Quelle, {"Profit Center", "Monat"}, {{"Betrag", each List.Sum([Betrag]), type number}}),
#"Sortierte Zeilen" = Table.Sort(#"Gruppierte Zeilen",{{"Profit Center", Order.Ascending}, {"Monat", Order.Ascending}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Sortierte Zeilen", "BetragNeu", each if [Betrag]0 or [Monat]=1 then [Betrag] else null),
#"Nach unten gefüllt" = Table.FillDown(#"Hinzugefügte benutzerdefinierte Spalte",{"BetragNeu"}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Nach unten gefüllt",{"Betrag"}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Entfernte Spalten",{{"BetragNeu", "Betrag"}}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Umbenannte Spalten",{"Profit Center", "Betrag", "Monat"})
in
#"Neu angeordnete Spalten"
Für mich besteht das Problem darin, dass die Ausgangslagen unterschiedlich/unklar sind. Z.B. wenn die Auswertung über mehrere Jahre gehen kann, dann bekommt die Angelegenheit eine neue Komplexität.
Ich denke man müsste mal einen Schritt zurück machen und die Ausgangslage/-ziel ganz konkret verstehen. Was war nur vereinfacht als Beispiel dargestellt und wie sieht es tatsächlich konkret aus. Verschiedene Themen wurden bereits angesprochen u.a. sind die Quelldaten sortiert oder nicht, dürfen die Daten sortiert werden, hast du mehrere Einträge fürs gleiche PC am gleichen Tag, geht es über mehrere Jahre, ist das Jahr überhaupt relevant, gibt es immer nur ein Eintrag am 1. des Monats (d.h. die Tage sind gar nicht von Relevanz)...
Weiter würde mich interessieren, wie gross die Datenmenge ist (muss auf Performance geachtet werden). Tiefer gegraben, welchen Informationsgehalt willst du überhaupt aus dieser Auswertung ziehen. Ich habe den Verdacht es ginge eigentlich um ein Diagramm oder so und da müsste man vielleicht gar nicht die Rohdaten verbiegen.
Mit den Fragen stochere ich nur mal ein wenig in der Aufgabe rum. Ob ich innert nützlicher Frist noch antworten werde ist fraglich (bin bald mal weg). Ich denke einfach man müsste mal klar sein, welche Aspekte wirklich wichtig sind und wo man Komplexität herausnehmen kann.
Vielleicht wäre es auch besser diesen Beitrag vorerst zu schliessen. Im Moment bist du ja zweigleisig unterwegs und womöglich arbeitet bereits jemand an der Lösung des anderen Beitrags.
cu
Chris
Anzeige
AW: Power Query immer Monat 1-12
16.12.2022 16:49:39
Henry
Hallo Chris,
zu meinem alten Post hat sich leider keine mehr gemeldet.
Eigentlich war das Problem auch gelöst.
Deswegen habe ich einen neuen Thread aufgemacht.
Ich hoffe das war okay.
Ich habe versucht deinen ersten Lösungsweg auf meine echte Tabelle anzuwenden.
https://www.herber.de/bbs/user/156789.xlsx
Leider habe ich das nicht hinbekommen.
Ich habe bereits in Power Query eine Tabelle, die sich ANFVG_IST nennt.
Kannst du mir bitte noch einmal helfen und diese Tabelle so umformen, dass die Monate 1-.12 ausgewiesen werden.
Ich denke, dass der Rest dann klappen sollte.
LG Henry
Anzeige
AW: Power Query immer Monat 1-12
19.12.2022 10:59:51
ChrisL
Hi
Eine letzte Anpassung bekommst du noch von mir. Zum Hinweis von Werner kann man unterschiedliche Betrachtungen einnehmen, aber mir geht es eher darum meine Beiträge "aufzuräumen" bzw. die bereits gemachte (Zeit-)investition zum Erfolg zu bringen. Also reiner Selbstzweck, ohne mütterliche Gefühle ;)
Die Lösung ist sehr statisch und auf die Aufgabe zugeschnitten (immer 1. des Monats, ohne Jahreswechsel, ohne Mehrfacheinträge je Datum usw.). Hauptsächlich habe ich die Einzelschritte angepasst, welche nach dem M-Code Eingriff (Hilfstabelle) kommen. Vielleicht kannst du mal versuchen diese Standardschritte nachzuvollziehen.

let
Quelldaten = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
Hilfstabelle1 = Table.FromList(List.Distinct(Quelldaten[Profit Center]), Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Hilfstabelle2 = Table.AddColumn(Hilfstabelle1, "Actual", each 0),
Hilfstabelle3 = Table.AddColumn(Hilfstabelle2, "Month", each {1..12}),
Hilfstabelle4 = Table.ExpandListColumn(Hilfstabelle3, "Month"),
Hilfstabelle5 = Table.RenameColumns(Hilfstabelle4, {"Column1", "Profit Center"}),
Quelle = Table.Combine({Quelldaten, Hilfstabelle5}),
#"Nach unten gefüllt" = Table.FillDown(Quelle,{"Figure", "Year"}),
#"Gruppierte Zeilen" = Table.Group(#"Nach unten gefüllt", {"Figure", "Profit Center", "Month", "Year"}, {{"Betrag", each List.Sum([Actual]), type number}}),
#"Sortierte Zeilen" = Table.Sort(#"Gruppierte Zeilen",{{"Profit Center", Order.Ascending}, {"Month", Order.Ascending}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Sortierte Zeilen", "Actual", each if [Betrag]0 or [Month]=1 then [Betrag] else null),
#"Nach unten gefüllt1" = Table.FillDown(#"Hinzugefügte benutzerdefinierte Spalte",{"Actual"}),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Nach unten gefüllt1", "Date", each #date([Year],[Month],1)),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"Betrag"}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Spalten",{"Figure", "Profit Center", "Date", "Month", "Year", "Actual"})
in
#"Neu angeordnete Spalten"
cu
Chris
Anzeige
AW: dazu ...
19.12.2022 12:01:28
neopa
Hallo Chris,
... ich kann Deine Haltung durchaus nachvollziehen. Nach dem Lesen von Günthers Beitrag (zu "Henrys" 3. prinzipiell gleichen Fragestellung innerhalb einer Woche) und meiner dort spontan geäußerte Meinung, hatte ich hier im thread deshalb meinen Beitrag auch schon etwas anders formuliert.
Gespannt bin ich nun trotzdem, ob und wie "Henry" sich zu Deiner Hilfe äußert.
Gruß Werner
.. , - ...

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige