Mehrfache Fallunterscheidung in Power Query, SELECT CASE Datentyp Text
Mit einer benutzerdefinierten Funktion in Power Query ist es möglich, eine
mehrfache Fallunterscheidung analog der SELECT CASE Anweisung in VBA
zu realisieren.
Beispiel:
Tabellenname = Tabelle1
Spaltenbezeichnung = Artikelgruppe
zu Funktion Text.Range siehe nützliche Textfunktionen in Power Query
Language M Code (Power Query, Start -> erweiterter Editor)
let
SELECT_CASE = (input) =>
let
values = {
{"0", "Null"},
{"1", "Eins"},
{"2", "Zwei"},
{"3", "Drei"},
{"4", "Vier"},
{"5", "Fünf"},
{"6", "Sechs"},
{"7", "Sieben"},
{"8", "Acht"},
{"9", "Neun"},
{input, "tbd"}
},
Ergebnis = List.First(List.Select(values, each _{0}=input)){1}
in
Ergebnis,
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
in_Text_konvertieren = Table.TransformColumnTypes(Quelle,{{"Artikelgruppe", type text}}),
Spalte_hinzufügen = Table.AddColumn(in_Text_konvertieren, "Teileart", each
SELECT_CASE(Text.Range([Artikelgruppe],1,1)))
in
Spalte_hinzufügen
wiederverwendbare benutzerdefinierte Funktion (custom function)
fxSelect_Case (Code in eine neue, leere Abfrage einfügen, Abfrage in fxSelect_Case umbenennen)
--- SCHNIPP
let
SELECT_CASE = (input as text) =>
let
values = {
{"0", "Null"},
{"1", "Eins"},
{"2", "Zwei"},
{"3", "Drei"},
{"4", "Vier"},
{"5", "Fünf"},
{"6", "Sechs"},
{"7", "Sieben"},
{"8", "Acht"},
{"9", "Neun"},
{input, "tbd"}
},
Ergebnis = List.First(List.Select(values, each _{0}=input)){1}
in
Ergebnis
in
SELECT_CASE
--- SCHNAPP
siehe auch hier
siehe auch alternativer Ansatz für einzelne Zeichen / Umlaute
Kommentare
Kommentar veröffentlichen