Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Power Query mehrere Aktionen in einer if-Abfrage

Forumthread: Power Query mehrere Aktionen in einer if-Abfrage

Power Query mehrere Aktionen in einer if-Abfrage
30.04.2025 16:50:15
Bona
Hallo,
gibt es eine Möglichkeit, in eine if-Abfrage mehrere Aktionen zu packen?
Also aus:
...
PDF_Sum = if Table.HasColumns(PDF_Komplett,"Data.Column13") then Table.AddColumn(PDF_Komplett,"NewSum", each if [Data.Column13]=null then [Data.Column12] else [Data.Column13]) else null,
PDF_Por = if Table.HasColumns(PDF_Sum,"Data.Column13") then Table.AddColumn(PDF_Sum,"NewPorto", each if [Data.Column13]=null then [Data.Column11] else [Data.Column12]) else null,
PDF_NNK = if Table.HasColumns(PDF_Por,"Data.Column13") then Table.AddColumn(PDF_Por,"NewNK", each if [Data.Column13]=null then [Data.Column10] else [Data.Column11]) else null,
...
z.B.:
...

PDF_Sum = if Table.HasColumns(PDF_Komplett,"Data.Column13") then ...
Table.AddColumn(PDF_Komplett,"NewSum", each if [Data.Column13]=null then [Data.Column12] else [Data.Column13]) ...
Table.AddColumn(PDF_Sum,"NewPorto", each if [Data.Column13]=null then [Data.Column11] else [Data.Column12]) ...
Table.AddColumn(PDF_Por,"NewNK", each if [Data.Column13]=null then [Data.Column10] else [Data.Column11]) else null,
...


Schomma danke
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Power Query mehrere Aktionen in einer if-Abfrage
30.04.2025 22:46:27
Yal
Hallo Bona,

habe ich noch nie probiert, aber eigentlich sollten solche mehrfachen Schritte in einem "let ... in .."-Konstrukt reinzupacken:

PDF_Sum = if Table.HasColumns(PDF_Komplett,"Data.Column13") then 

let
S1 = Table.AddColumn(PDF_Komplett,"NewSum", each if [Data.Column13]=null then [Data.Column12] else [Data.Column13]),
S2 = Table.AddColumn(S1,"NewPorto", each if [Data.Column13]=null then [Data.Column11] else [Data.Column12]),
S3 = Table.AddColumn(S2,"NewNK", each if [Data.Column13]=null then [Data.Column10] else [Data.Column11])
in
S3
else
null,

Ansonsten kannst Du vielleicht auf diesem Basis gezielter das Netz durchforsten.

VG
Yal
Anzeige
Das kannst du...
01.05.2025 13:04:02
Case
Moin, :-)

... z. B. über "List.Accumulate" machen: ;-)
PDF_Neu =

let
VGSpalte = "Data.Column13",
Guideline = {
{"NewSum", "Data.Column12"},
{"NewPorto", "Data.Column11"},
{"NewNK", "Data.Column10"}
},
Outcome = if Table.HasColumns(PDF_Komplett, VGSpalte) then
List.Accumulate(
Guideline,
PDF_Komplett,
(state, current) =>
Table.AddColumn(
state,
current{0},
each if Record.Field(_, VGSpalte)=null then Record.Field(_, current{1}) else Record.Field(_, VGSpalte)))
else
null
in
Outcome

Oder mit Prüfung auf "Table.HasColumns" für jede "Table.AddColumn": ;-)
PDF_Neu =

let
VGSpalte = "Data.Column13",
Guideline = {
{"NewSum", "Data.Column12"},
{"NewPorto", "Data.Column11"},
{"NewNK", "Data.Column10"}
},
Outcome = if Table.HasColumns(PDF_Komplett, VGSpalte) then
List.Accumulate(
Guideline,
PDF_Komplett,
(state, current) =>
if Table.HasColumns(state, current{1}) then
Table.AddColumn(
state,
current{0},
each if Record.Field(_, VGSpalte)=null then Record.Field(_, current{1}) else Record.Field(_, VGSpalte)
)
else
state
)
else
null
in
Outcome

Bzw. auch so (Guideline als Liste mit neuer Spaltenname, Spalte zum Vergleich und die Spalte zum Ersatz): ;-)
PDF_Neu =

let
Guideline = {
{"NewSum", "Data.Column13", "Data.Column12"},
{"NewPorto", "Data.Column13", "Data.Column11"},
{"NewNK", "Data.Column13", "Data.Column10"}
},
Outcome = List.Accumulate(
Guideline,
PDF_Komplett,
(state, current) =>
if Table.HasColumns(state, current{1}) and Table.HasColumns(state, current{2}) then
Table.AddColumn(
state,
current{0},
each if Record.Field(_, current{1})=null then Record.Field(_, current{2}) else Record.Field(_, current{1})
)
else
state
)
in
Outcome

Servus
Case
Anzeige
AW: Das kannst du...
03.05.2025 22:39:21
Bona
Hallo Case,
vielen Dank für Deine Vorschläge, ich muß mich damit nochmal umfangreicher befassen, da ich in der M-Language noch immer nicht so fit bin.

Die Schwierigkeit ist, daß es schon beim Einlesen einer PDF-Datei mit mehreren Seiten manchmal, aber leider nicht immer, dazu kommt, daß eine zusätzliche Spalte (Column13) eingefügt wird.

Die Ursache ist, daß beim Übertrag in einer Spalte (hier "Post") >999 wegen der zumeist leeren und daher schmalen Spalte "NK" diese zusätzliche Spalte daher erst ab der betreffenden Seite eingefügt wird. In dieser Spalte steht dann die Tausender-Ziffer des Übertrags. Ab da sind dann die Werte der rechts davon befindlichen Spalten um diese eine Spalte verschoben.

Aktuell klappt es bereits mit den IF-Abfragen, die ich nach dem Vorschalg von Yal gruppiert habe.

Bona
Anzeige
AW: Power Query mehrere Aktionen in einer if-Abfrage
03.05.2025 22:23:53
Bona
Hallo Yal,
danke für den Tip, das hat siper funktioniert und verkürzt die Verarbeitung nochmal um ca. 1/3, was bei über 100 PDF-Dateien mit unterschiedlich vielen Seiten ein großer Zeitgewinn ist.

Bona
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18