Office-Fragen.de
Power Query - Zuordnung bei mehreren verschachtelten Bedingungen - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Power Query - Zuordnung bei mehreren verschachtelten Bedingungen (/thread-29285.html)



Power Query - Zuordnung bei mehreren verschachtelten Bedingungen - Wolf-Tilmann - 12.11.2025

Hallo zusammen,

ich bin hier neu.
Und habe natürlich eine Frage, bei welcher ich Eure Hilfe benötige:


Mittels Power Query habe ich bereits einige Aufgaben lösen können.

Jetzt bin ich aber an einem Punkt angelangt, bei dem ich überfragt bin.

Ich habe eine Tabelle. Eine Spalte in der Tabelle, Ausgang, enthält immer 5 Ziffern. Die 5 Ziffern sind ausnahmslos als Text formatiert.

Diesen Ziffernfolgen muss ich in einer weiteren, neuen Spalte einen bestimmten Text zuordnen.

Beispielsweise.

Ziffernfolgen der Tabelle 1, welche mit "81" oder "82" beginnen, sollen in der neuen Spalte den Wert "D12.c" erhalten.

Das konnte ich mit

Code:
= Table.AddColumn(#"Geänderter Typ", "ZKreis", each if Text.StartsWith([Ausgang], "81") then "D12.c" else if not Text.StartsWith([Ausgang], "82") then "D12.c" else null)

Leider gibt es weitere Bedingungen.

Der Wert in der neuen Spalte, ZKreis, soll "D12.b" lauten, wenn die Ziffernfolge in Tabelle 1, Spalte Ausgang
- beginnend zwischen  51 und 54 liegt
- nicht mit 526 beginnt
- nicht mit 5272 beginnt
- nicht mit 5312 beginn
- nicht mit 5320 beginnt
- nicht mit 549 beginnt
- nicht 54645 entspricht.


Was ich machen könnte, wäre z.B.
die ersten beiden Ziffern extrahieren in Zahlen umwandeln und dann prüfen ob zwischen 51 und 54.
Theoretisch zu jeder Einschränkung eine eigene Spalte, dann zusammenfassen und löschen. Das wäre aber EDV zu Fuß.

Für eine sinnvolle Lösung hat mich mein Wissen und können verlassen.

(Die nicht-Einschränkungen können sich in den kommenden Zeiten ändern.)

Es gibt zwar noch D12.a. Aber das lässt sich aus der Lösung für D12.b ableiten.

Bevor die Frage aufkommt, wo kann so etwas wirres als Bedingungen herkommen: Volljuristen.  Big Grin


Vielen Dank schon einmal für jegliche Hilfe

Euer
Wolf-Tilmann


RE: Power Query - Zuordnung bei mehreren verschachtelten Bedingungen - Flotter Feger - 12.11.2025

Hallo ihr Volljuristen,

ich denke nicht, dass dies mit PQ so einfach umzusetzen ist.

Mit VBA geht es aber.

Eine kleine Beispieldatei mit einigen Spieldaten inklusive dem gewünschten Ergebnis könnte beim Helfen helfen.


RE: Power Query - Zuordnung bei mehreren verschachtelten Bedingungen - boskobiati - 12.11.2025

Hi,

mit normaler Formel:

Code:
=WENN(ODER(--LINKS(A1;2)={81;82});"D12.c";WENN(ODER(--LINKS(A1;2)={51;52;53;54})*UND(--LINKS(A1;3)<>{526;549})*UND(--LINKS(A1;4)<>{5272;5312;5320})*(A1<>"54645");"D12.b";""))



RE: Power Query - Zuordnung bei mehreren verschachtelten Bedingungen - ws-53 - 18.11.2025

Geht auch in PQ mit einer if:

l
Code:
let
    Source      = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    Change_Type = Table.TransformColumnTypes(Source,{{"Ausgang", type text}}),
    Col_ZKreis  = Table.AddColumn(Change_Type, "Zkreis", each
                  if Text.StartsWith([Ausgang], "526")   or
                     Text.StartsWith([Ausgang], "5272")  or
                     Text.StartsWith([Ausgang], "5312")  or
                     Text.StartsWith([Ausgang], "5320")  or
                     Text.StartsWith([Ausgang], "54645") or
                     Text.StartsWith([Ausgang], "549")   then "" else
                  if Text.StartsWith([Ausgang], "51")    or
                     Text.StartsWith([Ausgang], "52")    or
                     Text.StartsWith([Ausgang], "53")    or 
                     Text.StartsWith([Ausgang], "54")    then "D12.b" else
                  if Text.StartsWith([Ausgang], "81")    or
                     Text.StartsWith([Ausgang], "82")    then "D12.c" else "")
in
    Col_ZKreis

Es geht natürlich auch mit einer Mapping Tabelle. Da mir hierzu jedoch nur eine suboptimale Lösung eingefallen war, habe ich mir die bessere durch chatGPT erstellen lassen.