Forum Discussion
Unpivot related columns
Firstly, thanks for reading my question! It should be simple...
I currently have a table that looks something like this:
| Audio | Video | Audio Poor | Video Poor |
May | 10 | 8 | 4 | 2 |
June | 12 | 7 | 2 | 1 |
And I'm hoping Power Query can give me this:
| Type | Count | Poor Count |
May | Audio | 10 | 4 |
May | Video | 8 | 2 |
June | Audio | 12 | 2 |
June | Video | 7 | 1 |
Hi Anonymous
1. select "Audio" and "Video" columns, and select "Unpivot only selected columns",
2. after step1, select "Audio Poor" and "Video Poor" columns, and select "Unpivot only selected columns",
3.add a custom column
Text.Contains([Attribute.1],[Attribute])
4. keep rows which meets your requirement
Code in Advanced editor
let Source = Excel.Workbook(File.Contents("C:\Users\maggiel\Desktop\case\7\7.31\7.31.xlsx"), null, true), Sheet3_Sheet = Source{[Item="Sheet3",Kind="Sheet"]}[Data], #"Promoted Headers" = Table.PromoteHeaders(Sheet3_Sheet, [PromoteAllScalars=true]), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"month", type text}, {"Audio", Int64.Type}, {"Video", Int64.Type}, {"Audio Poor", Int64.Type}, {"Video Poor", Int64.Type}}), #"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"Audio", "Video"}, "Attribute", "Value"), #"Unpivoted Only Selected Columns1" = Table.Unpivot(#"Unpivoted Only Selected Columns", {"Audio Poor", "Video Poor"}, "Attribute.1", "Value.1"), #"Added Custom" = Table.AddColumn(#"Unpivoted Only Selected Columns1", "Custom", each Text.Contains([Attribute.1],[Attribute])), keeprows=Table.SelectRows(#"Added Custom",each[Custom]=true) in keeprowsBest Regards
Maggie
2 Replies
- parry2k
Super User
Anonymousseems like a duplicate post.
- v-juanli-msft
Community Support
Hi Anonymous
1. select "Audio" and "Video" columns, and select "Unpivot only selected columns",
2. after step1, select "Audio Poor" and "Video Poor" columns, and select "Unpivot only selected columns",
3.add a custom column
Text.Contains([Attribute.1],[Attribute])
4. keep rows which meets your requirement
Code in Advanced editor
let Source = Excel.Workbook(File.Contents("C:\Users\maggiel\Desktop\case\7\7.31\7.31.xlsx"), null, true), Sheet3_Sheet = Source{[Item="Sheet3",Kind="Sheet"]}[Data], #"Promoted Headers" = Table.PromoteHeaders(Sheet3_Sheet, [PromoteAllScalars=true]), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"month", type text}, {"Audio", Int64.Type}, {"Video", Int64.Type}, {"Audio Poor", Int64.Type}, {"Video Poor", Int64.Type}}), #"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"Audio", "Video"}, "Attribute", "Value"), #"Unpivoted Only Selected Columns1" = Table.Unpivot(#"Unpivoted Only Selected Columns", {"Audio Poor", "Video Poor"}, "Attribute.1", "Value.1"), #"Added Custom" = Table.AddColumn(#"Unpivoted Only Selected Columns1", "Custom", each Text.Contains([Attribute.1],[Attribute])), keeprows=Table.SelectRows(#"Added Custom",each[Custom]=true) in keeprowsBest Regards
Maggie