Forum Discussion
Iterating over a list in Power Query
Hi everyone, I'm having difficults getting the results I'm willing...
I have a table with a colum that is a result of invoking a function and it gives a list as a result, now I need to iterate over this list and create another column that will give a list a result.
= Table.AddColumn(#"Renamed Columns1", "Test", each
let list = [column1]
in
List.Transform(list, each
if List.Contains(list,0) then "X6"
else if List.Contains(list,1) then "X7"
else if List.Contains(list,2) then "X14"
else if List.Contains(list,3) then "X15"
else if List.Contains(list,4) then "X22"
else if List.Contains(list,5) then "X23"
else if List.Contains(list,6) then "X30"
else if List.Contains(list,7) then "X31"
else "")
)
This is what I'm doing now, the problem is that it is giving me the right number of things that should be contained in the list as the result, but it is not iterating correctly.
For example, is the list contained in the Column1 has 2 numbers let's say 4 and 7, the resulting list brings me two results in the new list but only takes in account the first number.
let's say the list is like this {4,7}...what I want as a result is a new list in a the new column {X22, X31}. Instead, what I'm getting is {X22,X22}.
Any idea what I'm doing wrong here?
Use this
= Table.AddColumn(#"Renamed Columns1", "Test", each let list = [column1] in List.Transform(list, (a)=> if a=0 then "X6" else if a=1 then "X7" else if a=2 then "X14" else if a=3 then "X15" else if a=4 then "X22" else if a=5 then "X23" else if a=6 then "X30" else if a=7 then "X31" else "") )
2 Replies
- Vijay_A_Verma
Most Valuable Professional
Use this
= Table.AddColumn(#"Renamed Columns1", "Test", each let list = [column1] in List.Transform(list, (a)=> if a=0 then "X6" else if a=1 then "X7" else if a=2 then "X14" else if a=3 then "X15" else if a=4 then "X22" else if a=5 then "X23" else if a=6 then "X30" else if a=7 then "X31" else "") ) - JulianaMacedo
Helper II
Awesome! Thanks... I knew it was close, it perfectly worked.