Daten Transponieren | Woche zu Tage
#1
Hallo zusammen,
ich hoffe, es geht euch allen gut! Ich habe eine kleine Herausforderung mit einer Excel-Datei und hoffe auf eure Unterstützung. In der angehängten Datei seht ihr links Daten auf Wochenbasis (Original), die ich gerne transponiert in eine tägliche Darstellung (Umgewandelt) übertragen möchte. Das, was ihr seht, ist nur ein Auszug.
Am liebsten wäre es mir, wenn Zeilen, in denen die Werte für die Tage auf 0 sind, komplett weggelassen werden könnten – wie es in der rechten Seite (Eventuell besser) der Datei bereits beispielhaft dargestellt ist.
Falls jemand einen guten Ansatz oder eine Idee hat, wäre ich sehr dankbar!
Viele Grüße und danke schon jetzt für eure Hilfe! 😊

.xlsx   test transponieren.xlsx (Größe: 12,92 KB / Downloads: 9)
Antworten Top
#2
Hi,

anbei eine Lösung via PQ. Die Spalte Genehmigerliste hab ich mir erspart. Ist ja mit Benutzer identisch.


Angehängte Dateien
.xlsx   test transponieren.xlsx (Größe: 1 MB / Downloads: 11)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 2 Nutzer sagen Danke an Ralf A für diesen Beitrag:
  • Jockel, Driver
Antworten Top
#3
Das geht auch mit einer einzigen Abfrage, in der auch das Datum bestimmt wird.


Angehängte Dateien
.xlsx   cef - Daten Transponieren - Woche zu Tage (PQ).xlsx (Größe: 26,37 KB / Downloads: 6)
Antworten Top
#4
Hallo WS-53,

mit Table.UnPivot() erzeugtst Du überflüssige Records (Datenzeilen) mit den '0'-Werten, die im nächsten Schritt rausgefiltert werden müssen. Das kann man verhindern, indem vorher alle '0'-Werte gegen 'null' ausgetauscht werden, dann filtert sie der Table.Umpivot-Schritt selber raus.
Hier mal 1 etwas anderer Ansatz, den ich mir bei Goodly abgeschaut habe.
Interessant dabei ist, wie man auf die Spalten indirekt zugreifen kann und so den eigentlichen PQ-Schritt nicht verändern muß, sondern nur den Variablenwert von 'tag' austauschen muß:
statt:
#"Gefilterte Zeilen" = Table.SelectRows(#"Andere entfernte Spalten", each [Montag] <> 0),
so:
tag = "Montag",
#"Gefilterte Zeilen" = Table.SelectRows(#"Andere entfernte Spalten", each (Record.Field(_, tag) <> 0)),

Gruß von Luschi
aus klein-Paris


Angehängte Dateien
.xlsx   test transponieren_1.xlsx (Größe: 928,04 KB / Downloads: 7)
Antworten Top
#5
Guten Morgen Luschi,

das ist mir bekannt und hätte ich normalerweise auch berücksichtigt. Aber wegen des Hinweises: "... in der auch das Datum bestimmt wird." habe ich dies hier nicht angewendet. Denn so kann ich mit dem in die gruppierten Daten über das einfügen eines, mit 0 beginnenden, Indexes, sehr einfach aus dem Datum "Woche beginnt am", das tatsächliche Datum bestimmen. Denn dies ist in der händisch erzeugten Musterlösung auch enthalten, auch wenn in dieser der Spaltentitel nicht angepasst wurde. Dieses Detail wurde wohl von Ralf und dir übersehen.
Antworten Top
#6
(14.11.2024, 08:13)ws-53 schrieb: ... Aber wegen des Hinweises: "... in der auch das Datum bestimmt wird." ...Dieses Detail wurde wohl von Ralf und dir übersehen.

...stimmt. War mir gar nicht aufgefallen....  Whistle

...aber wo Du "... in der auch das Datum bestimmt wird." gelesen haben willst, hab ich immer noch nicht entdeckt...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#7
Zitat:...  hab ich immer noch nicht entdeckt
  
Das hat er auch nicht geschrieben, sondern nur in seine Musterlösung realisiert, denn da wird zu den transponierten Tagen zum jetzt falschen Spaltentitel "Woche beginnt mit", das jeweilige Datum gezeigt.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste