Add Index Column Within Each Group in Power Query M

Adds a sequential index that restarts at 1 for every group, instead of numbering the whole table.

Table TransformationsAdvancedindexgrouprow numberreshape

Power Query M code

let
    Source = YourTable,
    Grouped = Table.Group(Source, {"GroupColumn"}, {{"AllRows", each Table.AddIndexColumn(_, "IndexInGroup", 1, 1, Int64.Type), type table}}),
    Expanded = Table.ExpandTableColumn(Grouped, "AllRows", Table.ColumnNames(Source) & {"IndexInGroup"})
in
    Expanded

Notes

IndexInGroup restarts at 1 for each distinct value of GroupColumn.

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 Add Index Column Within Each Group.