Forum Discussion

SClarke501's avatar
SClarke501
Frequent Visitor
4 years ago
Solved

Why can't I Pivot this table?

I need to turn these Types into columns, but I'm getting:

 

 

 

 

Expression.Error: There weren't enough elements in the enumeration to complete the operation.

 

 

 

 

Type      Description

CarCar-Red
CarCar-Blue
CarCar-Green
PlanePlane-Green
PlanePlane-White
PlanePlane-Black
BoatBoat-White
BoatBoat-Brown

 

I assumed I needed Description to be unique for each Type, so I appended the Type to the front. But the error still persists. I could have sworn I've pivoted data in a similar format before. I am using Don't Aggregate.

 

Desired Output:

 

Car            Plane                    Boat

Car-RedPlane-GreenBoat-White
Car-BluePlane-WhiteBoat-Brown
Car-GreenPlane-Blacknull

 

It doesn't even work when I remove all but one type i.e. Car so there would be no null values.

  • You require a minimum of 3 columns for pivoting to happen. See below code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wck4sUtIBkbpBqSlKsTrIIk45paloQu5Fqal5YLGAnMS8VKAomMYpHp6RWZKKRdwpJzE5GyzulJ9YAhQGUUiqkUWdivLLgWbHAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Type = _t, Description = _t]),
        #"Grouped Rows" = Table.Group(Source, {"Type"}, {{"Temp", each Table.AddIndexColumn(_,"Index",0), type table}}),
        #"Expanded Temp" = Table.ExpandTableColumn(#"Grouped Rows", "Temp", {"Description", "Index"}, {"Description", "Index"}),
        #"Pivoted Column" = Table.Pivot(#"Expanded Temp", List.Distinct(#"Expanded Temp"[Type]), "Type", "Description")
    in
        #"Pivoted Column"

1 Reply

  • Vijay_A_Verma's avatar
    Vijay_A_Verma
    Most Valuable Professional

    You require a minimum of 3 columns for pivoting to happen. See below code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wck4sUtIBkbpBqSlKsTrIIk45paloQu5Fqal5YLGAnMS8VKAomMYpHp6RWZKKRdwpJzE5GyzulJ9YAhQGUUiqkUWdivLLgWbHAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Type = _t, Description = _t]),
        #"Grouped Rows" = Table.Group(Source, {"Type"}, {{"Temp", each Table.AddIndexColumn(_,"Index",0), type table}}),
        #"Expanded Temp" = Table.ExpandTableColumn(#"Grouped Rows", "Temp", {"Description", "Index"}, {"Description", "Index"}),
        #"Pivoted Column" = Table.Pivot(#"Expanded Temp", List.Distinct(#"Expanded Temp"[Type]), "Type", "Description")
    in
        #"Pivoted Column"