Forum Discussion

andya_utah's avatar
andya_utah
New Member
1 year ago
Solved

Complex Pivoting

I am trying to replicate results from an another ETL platform I utilize to arrive at a more complex piviot the BI seems to offer. I am new using BI.

 

I would like to go from a to b - if it is possible.. Any pointers would be appreciated...

 

A

ClassNameBeginYearAssessmentTotalPercent
CCH 2 Duration2023Fall12580
CCH 2 Duration2023Spring15287
CCH 2 Duration2024Fall10768
CCH 2 Duration2024Spring14182

 

B

ClassNameBeginYearFall Total Fall PercentSpring TotalSpring Percent
CCH 2 Duration20231258015287
CCH 2 Duration20241076814185
  • hello andya_utah 

     

    please check if this accomodate your need.

     

    if you want to do this in PQ.

    let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcnb2UDBScCktSizJzM9T0lEyMjAyBlJuiTk5QMrQyBRIWhgoxergVhtcUJSZlw5SbWoEUm2OU7UJkskG5kDSzAKvWoTJJoYgk42UYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ClassName = _t, BeginYear = _t, Assessment = _t, Total = _t, Percent = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ClassName", type text}, {"BeginYear", Int64.Type}, {"Assessment", type text}, {"Total", Int64.Type}, {"Percent", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"ClassName", "BeginYear", "Assessment"}, "Attribute", "Value"),
    #"Merged Columns" = Table.CombineColumns(#"Unpivoted Columns",{"Assessment", "Attribute"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
    #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[Merged]), "Merged", "Value", List.Sum)
    in
    #"Pivoted Column"

    1. Unpivot Total and Percent

    2. Merge Assessment and Attribut

    3. Pivot Merged column using Value column as value in pivot

     

    if you want to do this in PBI.

    following after merged as above, load the data into PBI, the use matrix visual

     

    Hope this will help.

    Thank you.

4 Replies

  • WishAskedSooner's avatar
    WishAskedSooner
    Continued Contributor

    Nothing complex at all when using PowerQuery. Just bring your table into PBI, and instead of clicking Load, click Transform and edit the query. The UI is your friend.

    • andya_utah's avatar
      andya_utah
      New Member

      Thank you for the response - but the "pivot column" function in power query does not allow me to arrive at the result I posted above. Care to enlighten me more as how to accomplish?

  • Irwan's avatar
    Irwan
    Super User

    hello andya_utah 

     

    please check if this accomodate your need.

     

    if you want to do this in PQ.

    let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcnb2UDBScCktSizJzM9T0lEyMjAyBlJuiTk5QMrQyBRIWhgoxergVhtcUJSZlw5SbWoEUm2OU7UJkskG5kDSzAKvWoTJJoYgk42UYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ClassName = _t, BeginYear = _t, Assessment = _t, Total = _t, Percent = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ClassName", type text}, {"BeginYear", Int64.Type}, {"Assessment", type text}, {"Total", Int64.Type}, {"Percent", Int64.Type}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"ClassName", "BeginYear", "Assessment"}, "Attribute", "Value"),
    #"Merged Columns" = Table.CombineColumns(#"Unpivoted Columns",{"Assessment", "Attribute"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
    #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[Merged]), "Merged", "Value", List.Sum)
    in
    #"Pivoted Column"

    1. Unpivot Total and Percent

    2. Merge Assessment and Attribut

    3. Pivot Merged column using Value column as value in pivot

     

    if you want to do this in PBI.

    following after merged as above, load the data into PBI, the use matrix visual

     

    Hope this will help.

    Thank you.