Unpivot All Columns Except Key Columns in Power Query M

Unpivots every column except a named list of key columns, useful when the columns to unpivot vary between refreshes.

Table TransformationsBeginnerunpivotkey columnsreshape

Power Query M code

let
    Source = YourTable,
    KeyColumns = {"ID", "Region"},
    Unpivoted = Table.UnpivotOtherColumns(Source, KeyColumns, "Attribute", "Value")
in
    Unpivoted

Notes

List every column that should stay as-is in KeyColumns; everything else becomes Attribute/Value pairs.

Requirements

How to use this snippet

  1. In Power BI Desktop, choose Transform data to open Power Query, then open the Advanced Editor on a query (or start from a blank query).
  2. Paste the snippet and replace the placeholder names (tables, columns, file paths) with your own. Check the requirements above first.
  3. Run it through the Power Query M Formatter to tidy the layout.

Related Power Query M snippets

More Power Query M resources

Browse all 145 snippets in the Power Query M Code Snippets, or search the library for something similar to Unpivot All Columns Except Key Columns.