Kumulativní součty v Power Query, s využitím funkce List.Range
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Funkce List.Range nám v jazyce M umožňuje, mimo jiné, vytvářet kumulativní součty - kdy každý řádek je součtem sebe a všech nad sebou.
Např. v této tabulce (která musí obsahovat indexový sloupec):
spočteme kumulativní součty tímto zápisem:
- =List.Range(
Table_with_index[Price],
0,
[Index])
Protože:
- =List.Range(
Table_with_index[Price], - název předchozího kroku a sloupce, který chceme vysčítávat
0, - začínáme od začátku, tedy v M od nulté položky
[Index]) - od nuly se bude brát tolik položek, kolik je napsáno ve sloupci Index
Pak už bude stačit jen převést výsledek na číselný datový typ:
a seskupit součtem:
a je hotovo:
A nejde to jednodušeji?
Pokud byste se nechtěli zdržovat se seskupováním a nebáli se jazyka M, můžete přidat List.Accumulate a všechno zapsat jedním vzorcem. Logika je taková, že nejprve List.Range najde oblast od začátku až do konkrétního řádku, načež List.Accumulate jednotlivé položky sečte.
- List.Accumulate(
List.Range(
#"Changed Type"[Price],
0,
[Index]),
0,
(state, current)=>state + current)
Případně můžete obdobně použít List.Sum:
- List.Sum(
List.Range(
Changed_type[Price],
0,
[Index]))
Pro počítání kumulativních součtů v DAXu klikněte sem.
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.