Forum Discussion
TCatron18
Jun 03, 2026Copper Contributor
Power Query Editor - Unpivot Multiple Delimited Columns
Hello- I'm looking for the most efficient way to unpivot multiple columns that have delimited data. For example, I have the following data: Date User Product Position Job 1/1/2026 1234...
- Jun 04, 2026
Perhaps not the most elegant way but the attached file contains a solution that works with your specific example, with the following M-code:
let Source = Excel.CurrentWorkbook(){[Name= "Table1"]}[Content], Type = Table.TransformColumnTypes(Source,{{"Date", type date}}), SplitPosition = Table.ExpandListColumn(Table.TransformColumns(Type, {{"Position", Splitter.SplitTextByDelimiter(" | ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Position"), RemoveJob = Table.RemoveColumns(SplitPosition,{"Job"}), SplitJob = Table.ExpandListColumn(Table.TransformColumns(Type, {{"Job", Splitter.SplitTextByDelimiter(" | ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Job"), RemovePos = Table.RemoveColumns(SplitJob,{"Position"}), AddIndex = Table.AddIndexColumn(RemovePos, "Index", 0, 1, Int64.Type), AddPos = Table.AddColumn(AddIndex, "Position", each RemoveJob[Position]{[Index]}), Remove = Table.RemoveColumns(AddPos,{"Index"}), Reorder = Table.ReorderColumns(Remove,{"Date", "User", "Product", "Position", "Job"}) in ReorderThe system doesn't let me attach the file, unfortunately.
Riny_van_Eekelen
Jun 04, 2026Platinum Contributor
Perhaps not the most elegant way but the attached file contains a solution that works with your specific example, with the following M-code:
let Source = Excel.CurrentWorkbook(){[Name= "Table1"]}[Content], Type = Table.TransformColumnTypes(Source,{{"Date", type date}}), SplitPosition = Table.ExpandListColumn(Table.TransformColumns(Type, {{"Position", Splitter.SplitTextByDelimiter(" | ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Position"), RemoveJob = Table.RemoveColumns(SplitPosition,{"Job"}), SplitJob = Table.ExpandListColumn(Table.TransformColumns(Type, {{"Job", Splitter.SplitTextByDelimiter(" | ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Job"), RemovePos = Table.RemoveColumns(SplitJob,{"Position"}), AddIndex = Table.AddIndexColumn(RemovePos, "Index", 0, 1, Int64.Type), AddPos = Table.AddColumn(AddIndex, "Position", each RemoveJob[Position]{[Index]}), Remove = Table.RemoveColumns(AddPos,{"Index"}), Reorder = Table.ReorderColumns(Remove,{"Date", "User", "Product", "Position", "Job"}) in Reorder
The system doesn't let me attach the file, unfortunately.
TCatron18
Jun 04, 2026Copper Contributor
Thank you! Works great!