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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

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
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

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