Pokud nejsou na výstupu potřebné původní hodnoty, tak lze použít nahrazení hodnot:
// all_replace
let
Zdroj = Table.Combine({Data2022, Data2023}),
Table.AddColumn(Zdroj, "Rate", each Table.Column(datarate, "rate")),
#"Extrahované hodnoty" = Table.TransformColumns(#"Přidané: Vlastní", {"Rate", each Text.Combine(List.Transform(_, Text.From)), type text}),
#"Změněný typ" = Table.TransformColumnTypes(#"Extrahované hodnoty",{{"Rate", type number}}),
#"Vložené: Sloučený sloupec" = Table.AddColumn(#"Změněný typ", "Period ", each Text.Combine({[Y], [M]}, "-"), type text),
#"Nahrazená hodnota" = Table.ReplaceValue(#"Vložené: Sloučený sloupec",null, null, (x, y, z) as number => x / rate,{"gross salary", "social and health insurance", "net salary", "travel allowance", "allowance", "total company costs", "total net for driver"})
in
#"Nahrazená hodnota"
// rate
let
Zdroj = Excel.CurrentWorkbook(){[Name="datarate"]}[Content][rate]?{0}?
in
Zdroj
Obecně:
Je to pár čísel, na to aby to bylo pomalé.
Vhodnější je poslat tabulku do datového modelu, různé sloupce typu měsíc, rok, ... jsou v tabulce zbytečné. V datovém modelu stačí kliknout na kalendář, vytvořit tabulku a vytvoří se automaticky, ten se spojí relací s původní tabulkou (all).
Pro konverzi je lepší vytvořit samostatné míry.
Efekt: Méně dat, rychlejší aktualizace, flexibilnější výstup.
Pokud chcete sloupce s konverzí přidat, mělo by být rychlejší:
let
Zdroj = Table.Combine({Data2022, Data2023}),
#"Přidané: Vlastní" = Table.AddColumn(Zdroj, "Rate", each rate, type number),
#"Přidané: Vlastní1" = Table.AddColumn(#"Přidané: Vlastní", "Vlastní", each let
rec = [[gross salary],[social and health insurance],[net salary],[travel allowance],[allowance],[total company costs],[total net for driver]],
rec.names = Record.FieldNames(rec),
rec_rate = Record.TransformFields(rec, List.Transform(rec.names, each { _, (f) => f / rate})),
vysl = Record.RenameFields(rec_rate, List.Transform(rec.names, each {_, _ & " EUR"}))
in vysl),
#"Rozbalené Vlastní" = Table.ExpandRecordColumn(#"Přidané: Vlastní1", "Vlastní", Record.FieldNames(#"Přidané: Vlastní1"[Vlastní]{0})),
#"Vložené: Sloučený sloupec" = Table.AddColumn(#"Rozbalené Vlastní", "Period ", each Text.Combine({[Y], [M]}, "-"), type text)
in
#"Vložené: Sloučený sloupec"citovat