Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Power Query -von einer Zeile auf mehrere

Power Query -von einer Zeile auf mehrere
03.01.2023 13:53:59
einer
Hallo,
als Teilprozess für eine Umsatzprognose muss ich für Kunden ohne Forecast eine Logik nach und nach aufbauen. Bis zum Gesamtwert je Kunde bin ich mittels Power Query gekommen. Allerdings komme ich jetzt nicht mehr weiter.
Ich habe eine Kalkulation für den Forecastwert erstellt, welcher in einer Zeile ist (Gesamtbetrag 1.000 und Anzahl Restperioden 4). Jetzt will ich den Umsatzwert linear auf die Restmonate aufteilen und einen einzelnen Eintrag (Zeile) pro Periode erstellen (jeweils 250 und Restperiode 1,2,3,4). Wichtig ist die Aufzählung der Restperioden für den weiteren Aufbau der Logik.
Ist diese Transformation überhaupt so möglich?
Anbei nochmal zur Veranschaulichung eine Arbeitsmappe von der Ausgangsbasis und dem Ziel https://www.herber.de/bbs/user/157062.xlsx
Herzlichen Dank schon mal im Voraus und noch ein gesundes neues Jahr:)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Power Query -von einer Zeile auf mehrere
03.01.2023 14:02:50
einer
Hi
Der Trick beginnt mit einer benutzerdefinierten Spalte:

={1..[Anzahl Restperioden]}

let
Quelle = Excel.CurrentWorkbook(){[Name="Ausgangsbasis"]}[Content],
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Quelle, "Resperiode", each {1..[Anzahl Restperioden]}),
#"Erweiterte Resperiode" = Table.ExpandListColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Resperiode"),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Erweiterte Resperiode", "Betrag", each [Gesamtbetrag]/[Anzahl Restperioden]),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"Gesamtbetrag", "Anzahl Restperioden"}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Spalten",{"Name", "Typ", "Betrag", "Resperiode"})
in
#"Neu angeordnete Spalten"
cu
Chris
Anzeige
AW: Power Query -von einer Zeile auf mehrere
03.01.2023 14:04:11
einer
Und so geht es ohne Schreibfehler

let
Quelle = Excel.CurrentWorkbook(){[Name="Ausgangsbasis"]}[Content],
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Quelle, "Restperiode", each {1..[Anzahl Restperioden]}),
#"Erweiterte Resperiode" = Table.ExpandListColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Restperiode"),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Erweiterte Resperiode", "Betrag", each [Gesamtbetrag]/[Anzahl Restperioden]),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"Gesamtbetrag", "Anzahl Restperioden"}),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entfernte Spalten",{"Name", "Typ", "Betrag", "Restperiode"})
in
#"Neu angeordnete Spalten"

Anzeige
AW: Power Query -von einer Zeile auf mehrere
03.01.2023 14:29:36
einer
Krassss, danke für die schnelle Antwort :)
Was macht diese Formel "={1..[Anzahl Restperioden]}" genau? Zählen von 1 bis zum eingetragenen Wert in der Spalte? Wenn ich statt der 1 eine 2 eintrage. Trägt er dann 2,3,4 als Periode ein?
AW: Power Query -von einer Zeile auf mehrere
03.01.2023 14:53:23
einer
Hi
Ja es erzeugt eine Serie von Nummern. {von..bis}
Gleiches könnte man auch mit der PQ-Funktion List.Numbers bewirken.
https://learn.microsoft.com/de-de/powerquery-m/list-numbers
Das Ergebnis ist der Datentyp list, vergleichbar mit einem eindimensionalen Array/Datenfeld. Quasi ein Datenfeld im Datenfeld. Erst das Erweitern/Expandieren ExpandListColumn macht daraus einzelne Zeilen.
cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Power Query: Eine Zeile in mehrere aufteilen


Schritt-für-Schritt-Anleitung

  1. Starte Excel und aktiviere Power Query: Stelle sicher, dass du die Funktion "Excel Power Query" aktiviert hast. In neueren Excel-Versionen ist Power Query bereits integriert.

  2. Lade deine Daten: Importiere die Tabelle, die du transformieren möchtest, in Power Query.

  3. Benutzerdefinierte Spalte hinzufügen: Gehe auf "Spalte hinzufügen" und wähle "Benutzerdefinierte Spalte". Füge die folgende Formel ein:

    = {1..[Anzahl Restperioden]}
  4. Erweiterung der Liste: Klicke auf die neue Spalte (z.B. "Restperiode") und wähle "Liste erweitern", um die einzelnen Perioden in separate Zeilen aufzuteilen.

  5. Berechnung des Betrags: Füge eine weitere benutzerdefinierte Spalte hinzu, um den Betrag pro Restperiode zu berechnen:

    = [Gesamtbetrag]/[Anzahl Restperioden]
  6. Entferne nicht benötigte Spalten: Entferne die Spalten "Gesamtbetrag" und "Anzahl Restperioden", um deine Tabelle zu bereinigen.

  7. Neu anordnen: Ordne die verbleibenden Spalten nach deinen Wünschen an.

  8. Daten laden: Lade die transformierten Daten zurück in Excel.


Häufige Fehler und Lösungen

  • Fehler bei der Erstellung der Liste: Wenn die Liste nicht korrekt angezeigt wird, überprüfe, ob die Spalte "Anzahl Restperioden" tatsächlich Werte enthält und keine leeren Zellen.

  • Formel nicht korrekt: Achte darauf, dass du die Formel exakt eingibst. Schreibfehler können dazu führen, dass die Transformation nicht funktioniert.

  • Erweiterung funktioniert nicht: Stelle sicher, dass du die richtige Spalte auswählst, wenn du die Liste erweiterst. Manchmal kann es zu Verwirrungen kommen, wenn mehrere Listen in einer Tabelle vorhanden sind.


Alternative Methoden

Eine alternative Methode zur Erzeugung von Sequenzen in Power Query ist die Verwendung der Funktion List.Numbers. Diese Funktion funktioniert ähnlich wie die benutzerdefinierte Spalte und kann dir helfen, Werte zu generieren. Hier ein Beispiel:

let
    Quelle = Excel.CurrentWorkbook(){[Name="Ausgangsbasis"]}[Content],
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Quelle, "Restperiode", each List.Numbers(1, [Anzahl Restperioden])),
    #"Erweiterte Restperiode" = Table.ExpandListColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Restperiode")
in
    #"Erweiterte Restperiode"

Praktische Beispiele

Angenommen, du hast eine Tabelle mit den folgenden Daten:

Name Gesamtbetrag Anzahl Restperioden
Kunde A 1000 4

Nach der Anwendung der Power Query-Transformation würdest du folgende Tabelle erhalten:

Name Betrag Restperiode
Kunde A 250 1
Kunde A 250 2
Kunde A 250 3
Kunde A 250 4

Tipps für Profis

  • Spalten sortieren: Du kannst die Funktion "Power Query Spalten sortieren" nutzen, um deine Daten nach bestimmten Kriterien zu ordnen.

  • Währungen richtig formatieren: Verwende die Funktion Currency in Power Query, um Beträge in Euro korrekt darzustellen.

  • Zähler für Zeilen: Wenn du die Anzahl der Zeilen in einer Tabelle zählen möchtest, kannst du die Funktion Table.RowCount verwenden.

  • Zeilen verketten: Mit der Funktion Text.Combine kannst du mehrere Textwerte in einer Spalte zu einem einzigen Eintrag zusammenfassen.


FAQ: Häufige Fragen

1. Wie kann ich Power Query aktivieren? Gehe zu "Daten" in Excel und wähle "Abfragen und Verbindungen". Wenn du Power Query nicht siehst, überprüfe, ob du eine neuere Version von Excel verwendest.

2. Was passiert, wenn ich die Anzahl der Restperioden ändere? Die Liste wird automatisch aktualisiert. Wenn du beispielsweise die Anzahl auf 2 setzt, wird die Liste 1, 2 generieren.

3. Kann ich auch mehrere Bedingungen in Power Query verwenden? Ja, du kannst die if-Anweisung in Power Query verwenden, um mehrere Bedingungen zu überprüfen und entsprechend zu handeln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige