Hallo Case,
diese Art der PQ-M-Schreibweise ist aus meiner Sicht nicht zielführend:
- für den PQ-Neueinsteiger eine blanke Katastrophe
- für den erfahrenen PQ-Nutzer sehr kompliziert in der Nachverfolgung der Einzelschritte
- kein Rückgriff auf bereits vorhandene PQ-Schritte möglich
- z.B.: Excel.CurrentWorkbook(){[Name="StartEnde"]}[Content] muß 3x ausgeführt werden
- von der Nutzung interner Funktionen sehe ich da keine Möglichkeit
- die Objekte 'List' und 'Record' müssen immer wieder in 1 Tabelle überführt werden
- da frag ich mich schon - was soll das!
- funktionale Programmierung sieht anders aus
Hier mal mein PQ-M-Code, aufbauend auf Deine Demodatei:
Code:
let
a_01 = Excel.CurrentWorkbook(){[Name="StartEnde"]}[Content][Column1],
a_02 = Date.Year(a_01{0}),
a_03 = Date.Year(a_01{1}),
a_04 = List.Accumulate(
{a_02 .. a_03},
{},
(st, cur) => st & {
let b_01 = Date.From(Text.From(a_01{3})&"."&Text.From(a_01{4})&"."&Text.From(cur)),
b_02 = if Date.DayOfWeekName(b_01,"de-DE") = a_01{2}
then b_01
else null
in b_02}) ,
a_05 = List.RemoveNulls(a_04),
a_06 = Table.FromList(a_05, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
a_07 = Table.RenameColumns(a_06,{{"Column1", "Bestimmter Tag / Monat"}}),
a_08 = Table.TransformColumnTypes(a_07,{{"Bestimmter Tag / Monat", type date}})
in
a_08
Das ist zwar auch kein Einsteiger-Modell für PQ-M, aber bis auf List.Accumulate() wenigstens nachvollziehbar.
Ich kenne inzwischen 5 Nick-Namen, die den PQ-M-Code als 3-Zeiler präsentieren, doch wem ist damit geholfen?
fragt sich Luschi
aus klein-Paris