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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
Mohanraj87
Frequent Visitor

Dynamically removing columns ending with even numbers

Hi All,

 

In Power Query, I have split a column based on "," delimiter and the result produced one column split into 10 columns and columns names have been named as "Column_1", "Column_2", and till "Column_10". Now today based on the values I get 10 columns but tomorrow I may get 20 columns. So, after split, I need to remove all the columns which is ending with even numbers like "Column_2", "Column_4" till the last even numbered columns. Is there a way to do it?

 

Regards,

Mohanraj

1 ACCEPTED SOLUTION
slorin
Super User
Super User

Hi

With 10 columns

= Table.SplitColumn(#"Changed Type 1", "Details", each List.Alternate(Text.Split(_,","),1,1,1), 10)

 or

 

= Table.SplitColumn(
#"Changed Type 1",
"Details",
each List.Alternate(Text.Split(_,","),1,1,1),
List.Max(
Table.TransformColumns(

#"Changed Type 1",
{{"Details", each Number.IntegerDivide(Text.Length(Text.Select(_,",")) + 1, 2) + 1, Int64.Type}}
)[Details]
)
)

 

https://goodly.co.in/split-by-variable-columns-in-power-query/

 

Stéphane

View solution in original post

6 REPLIES 6
slorin
Super User
Super User

Hi

With 10 columns

= Table.SplitColumn(#"Changed Type 1", "Details", each List.Alternate(Text.Split(_,","),1,1,1), 10)

 or

 

= Table.SplitColumn(
#"Changed Type 1",
"Details",
each List.Alternate(Text.Split(_,","),1,1,1),
List.Max(
Table.TransformColumns(

#"Changed Type 1",
{{"Details", each Number.IntegerDivide(Text.Length(Text.Select(_,",")) + 1, 2) + 1, Int64.Type}}
)[Details]
)
)

 

https://goodly.co.in/split-by-variable-columns-in-power-query/

 

Stéphane

Thanks you very much @slorin your solution worked like a charm.

slorin
Super User
Super User

The principle is not to delete even columns but to select only odd columns with the List.Alternate

 

= Table.SplitColumn(#"Changed Type 1", "Details", each List.Alternate(Text.Split(_,","),1,1,1))

Stéphane

Hi @slorin your code worked partially. Meaning the code worked to the lowest length of the column values. 
Eg: For column value 1, raw, 3 I got the result as 1, 3 whereas for the column value 2, name, house, 10, 6, 20 I got the result as 2, house.

Mohanraj87_0-1709053062205.png

 



slorin
Super User
Super User

Hi

 

= Table.SplitColumn(Your_Source, "Your_Column", each List.Alternate(Text.Split(_,","),1,1,1))

Stéphane 

Hi @slorin ,

 

Below is the screenshot of my Power Query and Advance editor. In the post I have mentioned the column name having "_", but in reality its ".". So, I tried to replace "_" to "." in the advance editor, but it didnt work. 
Let me know as what is wrong.

Mohanraj87_1-1709041232477.png

 

 

 

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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