Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hello,
I am trying to see if it's possible to increment a variable within an each function.
#"Table With EventKey" = Table.AddColumn(#"OriginalData", "EventKeyTable", each let
AllData = [Custom],
Counter = 0,
AddToCounter = () => Counter = Counter +1,
PrevRowComparison =
Table.AddColumn(AllData, "EventKey",
(x) =>
let
Val = if x[PrevEventNo] = x[EventNo] then null else AddToCounter()
in
Counter )
in PrevRowComparison)
How would I go about creating and implementing a function that will increase the Counter value and then I can retrieve the counter value to place into the row?
I would like the output to be something like the image show below.
| Index | EventNo | PrevEventNo | EventKey |
| 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 0 |
| 2 | 3 | 1 | 1 |
| 3 | 3 | 3 | 1 |
| 4 | 3 | 3 | 1 |
| 5 | 4 | 3 | 2 |
| 6 | 4 | 4 | 2 |
| 7 | 1 | 4 | 3 |
| 8 | 3 | 1 | 4 |
Solved! Go to Solution.
NewStep=Table.FromRecords(List.Accmulate(Table.ToRecords(PreviousStepName),{{},0},(x,y)=>let a=x{1}+Byte.From(y[EventNo]<>y[PrevEventNo]) in {x{0}&{y&[EventKey=a]},a}){0})
If anyone is interested, using @wdx223_Daniels solution. I did the following since I have nested tables.
#"Table With EventKey" = Table.AddColumn(#"OriginalData", "EventKeyTable", each let
AllData = [Custom],
NewStep=Table.FromRecords(List.Accumulate(Table.ToRecords(AllData),{{},0},(x,y)=>let
a=x{1}+Byte.From(y[EventNo]<>y[PrevEventNo]) in {x{0}&{y&[EventKey=a]},a}){0})
in NewStep)
NewStep=Table.FromRecords(List.Accmulate(Table.ToRecords(PreviousStepName),{{},0},(x,y)=>let a=x{1}+Byte.From(y[EventNo]<>y[PrevEventNo]) in {x{0}&{y&[EventKey=a]},a}){0})
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!