Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
osama_ayoub
Helper III
Helper III

Creating Index Column

I have a table with 2 column Code and substitute and there are some iterrated codes in the two columns, 

this means maybe row 1 has code a and Substitue b and 

row 2 has Code b and Substitue C and

row 3 has Code F and Substitue D and so on ,

What I want to create a Index Column

and this Index Column will put the same Index for row 1 and row 2 because the a and B and C are alternatives and

put another Index for line 3 and so on 

osama_ayoub_0-1691011917097.png

 

3 REPLIES 3
wdx223_Daniel
Community Champion
Community Champion

NewStep=#table(Table.ColumnNames(PreviousStepName)&{"Index"},List.Accumulate(Table.ToRows(PreviousStepName),{{},[],1},(x,y)=>let a=List.Max(List.Transform(y,each Record.FieldOrDefault(x{1},_,null))) in if a=null then {x{0}&{y&{x{2}+1}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each x{2}+1}),2),x{2}+1} else {x{0}&{y&{a}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each a}),2),x{2}}){0})

Thank you for your support but I still have this errror 

 

osama_ayoub_0-1691049073145.png

 

This is the code of the query 

 

let
Source = Table1,
#"Added Index" = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Added Index", each [Index] < 100),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns", "Custom", each #"Removed Columns"(Table.ColumnNames(#"Removed Columns")&{"Index"},List.Accumulate(Table.ToRows(#"Removed Columns"),{{},[],1},(x,y)=>let a=List.Max(List.Transform(y,each Record.FieldOrDefault(x{1},_,null))) in if a=null then {x{0}&{y&{x{2}+1}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each x{2}+1}),2),x{2}+1} else {x{0}&{y&{a}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each a}),2),x{2}}){0}))
in
#"Added Custom"

 

let
Source = Table1,
#"Added Index" = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Added Index", each [Index] < 100),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index"}),
#"Added Custom" = #table(Table.ColumnNames(#"Removed Columns")&{"Index"},List.Accumulate(Table.ToRows(#"Removed Columns"),{{},[],1},(x,y)=>let a=List.Max(List.Transform(y,each Record.FieldOrDefault(x{1},_,null))) in if a=null then {x{0}&{y&{x{2}+1}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each x{2}+1}),2),x{2}+1} else {x{0}&{y&{a}},Record.TransformFields(x{1},List.Transform(y,(z)=>{z,each a}),2),x{2}}){0})
in
#"Added Custom"

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors