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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
JulianaMacedo
Helper I
Helper I

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?




 

1 ACCEPTED SOLUTION
Vijay_A_Verma
Super User
Super User

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 "")
)

View solution in original post

2 REPLIES 2
JulianaMacedo
Helper I
Helper I

Awesome! Thanks... I knew it was close, it perfectly worked.

Vijay_A_Verma
Super User
Super User

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 "")
)

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors