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

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

Reply
SloeMo
Frequent Visitor

Unpivotting multiple columns - Power query

Hi all, I have a sharepoint list with multiple columns in that I am tryting to pivot into a usable format. So far I have tried lots of steps which have all failed with the result of me creating duplcate queries and then appending to 1 table which is inefficient. I have tried following steps from other suggestions but cant seem to get it right

 

The data looks like this although there would be 22 Areas not just the 2 in my example below, each area has 4 columns attributed to them - Owner, Agreed, Date Agreed and commentary.

Programme Business Case NameBusiness Case OwnerArea 1 OwnerArea 1 AgreedArea 1 Date AgreedArea 1 CommentaryArea 2 OwnerArea 2 AgreedArea 2 DateArea 2 Commentary
Test ProgrammeLee TestLee MorganLee MorganYes30/06/2023text in hereLee MorgannullnullRandom text
Test Programme 2Lee Test 2Lee MorganLee MorgannullnullDifferent textLee Morgannullnullnull

 

What I am trying to achieve is something like the following format.

 

Programme Business Case NameBusiness Case OwnerAreaArea OwnerAgreedDate AgreedCommentary
Test ProgrammeLee TestLee MorganArea 1Lee MorganYes30/06/2023text in here
Test ProgrammeLee TestLee MorganArea 2Lee MorgannullnullRandom text
Test Programme 2Lee Test 2Lee MorganArea 1Lee MorgannullnullDifferent text
Test Programme 2Lee Test 2Lee MorganArea 2Lee Morgannullnullnull

 

Any help guidance is greatly appreciated.

 

Many thanks

Lee

1 ACCEPTED SOLUTION
slorin
Super User
Super User

Hi

Unpivot columns, Split Attribute, Pivot

 

let
Source = YourSource,
Unpivot = Table.UnpivotOtherColumns(Source, {"Programme ", "Business Case Name", "Business Case Owner"}, "Attribute", "Value"),
#"Split Column" = Table.SplitColumn(Unpivot, "Attribute", Splitter.SplitTextByCharacterTransition({"0".."9"}, {" "}), {"Attribute.1", "Attribute.2"}),
Trim = Table.TransformColumns(#"Split Column",{{"Attribute.2", Text.Trim, type text}}),
Pivot = Table.Pivot(Trim, List.Distinct(Trim[Attribute.2]), "Attribute.2", "Value")
in
Pivot

Stéphane 

View solution in original post

3 REPLIES 3
SloeMo
Frequent Visitor

Thank you so much for this, has worked like a charm for the multiple columns.

slorin
Super User
Super User

Hi

Unpivot columns, Split Attribute, Pivot

 

let
Source = YourSource,
Unpivot = Table.UnpivotOtherColumns(Source, {"Programme ", "Business Case Name", "Business Case Owner"}, "Attribute", "Value"),
#"Split Column" = Table.SplitColumn(Unpivot, "Attribute", Splitter.SplitTextByCharacterTransition({"0".."9"}, {" "}), {"Attribute.1", "Attribute.2"}),
Trim = Table.TransformColumns(#"Split Column",{{"Attribute.2", Text.Trim, type text}}),
Pivot = Table.Pivot(Trim, List.Distinct(Trim[Attribute.2]), "Attribute.2", "Value")
in
Pivot

Stéphane 

HoussemDhahri
New Member

Hello , 

I have a scenario maybe it can help you :

  1. Duplicate your table.
  2. Remove all features related to Area 2 from the first table. Instead, add a new column called 'Area' and fill it with the value 'Area1' for all rows.
  3. Remove all features related to Area 1 from the second table. Instead, add a new column called 'Area' and fill it with the value 'Area2' for all rows.
  4. Append both tables together and rename the headers as desired.

Helpful resources

Announcements
May PBI 25 Carousel

Power BI Monthly Update - May 2025

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

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

May 2025 Monthly Update

Fabric Community Update - May 2025

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

Top Solution Authors