Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
hi all.
i have a question about some product table
there are
[Prodcode], [porductNM] , [Date], [salesamount], [salesprice]
that i want is addcolumns which one value is cumulative value with [salesamount] and [salesprice]
with date
if change next year -> reset cumulative
for example
Solved! Go to Solution.
hi, @theopa
sort = Table.Sort(your_table, {"porductNM", "Date"}),
f = (t as table) as table =>
[rec = List.Buffer(Table.ToRecords(t)),
gen = List.Generate(
() => [i = 0, r = rec{0}, rt = [Csalesamount = r[salesamount], Csalesprice = r[salesprice]]],
(x) => rec{x[i]}? <> null,
(x) =>
[i = x[i] + 1, r = rec{i},
rt =
[Csalesamount = x[rt][Csalesamount] + r[salesamount],
Csalesprice = x[rt][Csalesprice] + r[salesprice]]
],
(x) => x[r] & x[rt]
),
z = Table.FromRecords(gen)][z],
g = Table.Group(
sort, {"porductNM", "Date"},
{{"rows", each f(Table.Sort(_, "Date"))}},
GroupKind.Local,
(s, c) => Byte.From(Date.Year(s[Date]) <> Date.Year(c[Date]) or (s[porductNM] <> c[porductNM]))),
expand = Table.ExpandTableColumn(g, "rows", {"salesamount", "salesprice", "Csalesamount", "Csalesprice"})
hi, @theopa
sort = Table.Sort(your_table, {"porductNM", "Date"}),
f = (t as table) as table =>
[rec = List.Buffer(Table.ToRecords(t)),
gen = List.Generate(
() => [i = 0, r = rec{0}, rt = [Csalesamount = r[salesamount], Csalesprice = r[salesprice]]],
(x) => rec{x[i]}? <> null,
(x) =>
[i = x[i] + 1, r = rec{i},
rt =
[Csalesamount = x[rt][Csalesamount] + r[salesamount],
Csalesprice = x[rt][Csalesprice] + r[salesprice]]
],
(x) => x[r] & x[rt]
),
z = Table.FromRecords(gen)][z],
g = Table.Group(
sort, {"porductNM", "Date"},
{{"rows", each f(Table.Sort(_, "Date"))}},
GroupKind.Local,
(s, c) => Byte.From(Date.Year(s[Date]) <> Date.Year(c[Date]) or (s[porductNM] <> c[porductNM]))),
expand = Table.ExpandTableColumn(g, "rows", {"salesamount", "salesprice", "Csalesamount", "Csalesprice"})
thank you a lot
it's very good solution