Table.Unpivot Function in Power Query
The Table.Unpivot function in Power Query given a list of table columns, transforms those columns into attribute-value pairs.
Syntax
Table.Unpivot( table as table, columnsToUnpivot as list, attributeColumn as text, valueColumn as text ) as table
The function has the following parameters:
- table: The original table you want to unpivot.
- columnsToUnpivot: A list of column names to convert into row values.
- attributeColumn: The name of the new column that will hold the former column names.
- valueColumn: The name of the new column that will hold the former column values.
Example: Create a table from records.
Power Query M
let Source = Table.FromRecords({ [Year = "2023", Jan = 100, Feb = 120, Mar = 110], [Year = "2024", Jan = 130, Feb = 140, Mar = 150], [Year = "2025", Jan = 160, Feb = 170, Mar = 180], [Year = "2026", Jan = 190, Feb = 200, Mar = 210] }) in Source
The output of the above code is shown below:

Example: Unpivot selected columns.
Power Query M
let Source = Table.FromRecords({ [Year = "2023", Jan = 100, Feb = 120, Mar = 110], [Year = "2024", Jan = 130, Feb = 140, Mar = 150], [Year = "2025", Jan = 160, Feb = 170, Mar = 180], [Year = "2026", Jan = 190, Feb = 200, Mar = 210] }), Unpivoted = Table.Unpivot(Source, {"Jan", "Feb", "Mar"}, "Month", "Sales") in Unpivoted
The output of the above code is shown below:
