Forum Discussion

kkanda's avatar
kkanda
Resolver II
1 year ago
Solved

Pivot columns in query editor

Hi All, The following table is imported from the database to Power BI desktop. ObjNr CharID Value_Text Value_Nr A0102 NBR_OF_PHASES   3 A0102 MAX_MVA 25 0 A0102 HIGH_VOLTAGE_R...
  • SundarRaj's avatar
    1 year ago

    Hi kkanda, you can have a look at this solution in Power Query. I'll leave the image of the ouput and M code used. The source used is the table you mentioned above. Thanks

    Here's the code used:
    let
    Source = #table(
    {"ObjNr", "CharID", "Value_Text", "Value_Nr"},
    {
    {"A0102", "NBR_OF_PHASES", null, 3},
    {"A0102", "MAX_MVA", null, 25},
    {"A0102", "HIGH_VOLTAGE_RATING_KV", "115/0/0", 0},
    {"A0102", "LOW_VOLTAGE_RATING_KV", "13.09/0/0", 0},
    {"A0102", "XFR_CONFIG", "DY", 0},
    {"A0102", "HIGH_OPERATING_VOLTAGE", null, 115},
    {"A0102", "LOW_OPERATING_VOLTAGE", null, 12.5},
    {"A0104", "NBR_OF_PHASES", null, 3},
    {"A0104", "MAX_MVA", null, 20},
    {"A0104", "HIGH_VOLTAGE_RATING_KV", "115/0/0", 0},
    {"A0104", "LOW_VOLTAGE_RATING_KV", "13.09/0/0", 0},
    {"A0104", "XFR_CONFIG", "DY", 0},
    {"A0104", "HIGH_OPERATING_VOLTAGE", null, 115},
    {"A0104", "LOW_OPERATING_VOLTAGE", null, 12.5}
    }
    ),
    Records = Table.TransformRows(
    Source,
    each _ & [Value_Nr = if [Value_Nr] = 0 then [Value_Text] else [Value_Nr]]
    ),
    FromRec = Table.FromRecords(Records, {"ObjNr", "CharID", "Value_Nr"}),
    Grouped = Table.Group(
    FromRec,
    {"ObjNr"},
    {{"AllTable", each _, type table [ObjNr = text, CharID = text, Value_Nr = any]}}
    ),
    Table = Table.TransformColumns(
    Grouped,
    {"AllTable", each Table.Pivot(_, [CharID], "CharID", "Value_Nr", each _{0})}
    ),
    Pivoted = Table.Combine(Table[AllTable])
    in
    Pivoted