Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
hiroki
Regular Visitor

functions to smartly assign sequential numbers for each group

Hello guys.

I have wrote functions to assign sequential numbers for each group that everyone wanted but hadn't yet invented.

https://github.com/takeyamajp/PowerQuery-IndexRowsForEachGroup

 

In this library, it is possible to assign sequential numbers in the exact and intended order.
Also, This library fully preserves column type information.

 

Custom Functions

  • IndexRowsForEachGroup(table as table, key as anynonnull, comparisonCriteria as anynonnull, optional newColumnName as nullable text) as table
  • CountRowsForEachGroup(table as table, key as anynonnull, optional newColumnName as nullable text) as table
  • IndexGroups(table as table, key as anynonnull, comparisonCriteria as anynonnull, optional newColumnName as nullable text) as table
  • CountGroups(table as table, key as anynonnull, optional newColumnName as nullable text) as table
  • IndexRows(table as table, comparisonCriteria as anynonnull, optional newColumnName as nullable text) as table
  • CountRows(table as table, optional newColumnName as nullable text) as table

 

Code Sample

 

let
    Source = #table(type table[Region = text, Country = text], {
        {"Asia", "Australia"}, 
        {"Asia", "China"}, 
        {"Asia", "India"}, 
        {"Asia", "Japan"}, 
        {"Europe", "France"}, 
        {"Europe", "Germany"}, 
        {"Europe", "United Kingdom"}, 
        {"North America", "Canada"}, 
        {"North America", "United States"}
    }),
    Custom1 = IndexRowsForEachGroup(Source, "Region", {"Region", "Country"}, "INDEX1"),
    Custom2 = CountRowsForEachGroup(Custom1, "Region", "COUNT1"),
    Custom3 = IndexGroups(Custom2, "Region", {"Region", "Country"}, "INDEX2"),
    Custom4 = CountGroups(Custom3, "Region", "COUNT2"),
    Custom5 = IndexRows(Custom4, {"Region", "Country"}, "INDEX3"),
    Custom6 = CountRows(Custom5, "COUNT3")
in
    Custom6

 

takeyamajp_0-1678533199330.png

 

1 REPLY 1
Peter_Beck
Resolver II
Resolver II

Thanks for these, I think they will be useful.

 

Cheers,


Peter

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors