Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi,
I'm struggling to create an extra column to have a incremental counter which resets per day. My expected solution should look like this:
| Date | Counter | |
| 01.12.2025 | 1 | |
| 01.12.2025 | 2 | |
| 01.12.2025 | 3 | |
| 01.12.2025 | 4 | |
| 02.12.2025 | 1 | |
| 02.12.2025 | 2 | |
| 02.12.2025 | 3 | |
| 03.12.2025 | 1 | |
| 03.12.2025 | 2 |
I should note that I use PQ within Excel.
How can I achieve this? 🙂
Solved! Go to Solution.
Hi @FabvE,
You can create this counter using a calculated column in Power BI. Here's the DAX formula:
Counter =
RANKX(
FILTER(
'YourTable',
'YourTable'[Date] = EARLIER('YourTable'[Date])
),
'YourTable'[Date],
,
ASC,
DENSE
)If you need it based on a specific sort order (like timestamp within the day):
Counter =
VAR CurrentDate = 'YourTable'[Date]
VAR CurrentRow = 'YourTable'[YourUniqueID] // or timestamp column
RETURN
COUNTROWS(
FILTER(
'YourTable',
'YourTable'[Date] = CurrentDate &&
'YourTable'[YourUniqueID] <= CurrentRow
)
)In Power Query (alternative):
The Power Query approach is more efficient for large datasets as it's computed during refresh rather than row-by-row like calculated columns.
Best regards!
PS: If you find this post helpful consider leaving kudos or mark it as solution
Hi @FabvE,
That´s is my solution:
Script M to reproduce the behaviour.
let
// Source: sample data with the dates provided
Source = Table.FromRows({
{"01.12.2025"},
{"01.12.2025"},
{"01.12.2025"},
{"01.12.2025"},
{"02.12.2025"},
{"02.12.2025"},
{"02.12.2025"},
{"03.12.2025"},
{"03.12.2025"}
}, {"Date"}),
// Convert to Date type (format dd.MM.yyyy)
ChangeType = Table.TransformColumnTypes(Source, {{"Date", type date}}),
// Sort by Date
Sorted = Table.Sort(ChangeType, {{"Date", Order.Ascending}}),
// Group by Date and add an index within each group
Grouped = Table.Group(Sorted, {"Date"}, {
{"All {"AllData", each Table.AddIndexColumn(_, "Counter", 1, 1, Int64.Type)}
}),
// Expand back to original format
Expanded = Table.ExpandTableColumn(Grouped, "AllData", {"Date", "Counter"})
in
Expanded
If this response was helpful in any way, I’d gladly accept a 👍much like the joy of seeing a DAX measure work first time without needing another FILTER.
Please mark it as the correct solution. It helps other community members find their way faster (and saves them from another endless loop 🌀.
If this response was helpful in any way, I’d gladly accept a kudo.
Please mark it as the correct solution. It helps other community members find their way faster.
Connect with me on LinkedIn
Hi @FabvE,
You can create this counter using a calculated column in Power BI. Here's the DAX formula:
Counter =
RANKX(
FILTER(
'YourTable',
'YourTable'[Date] = EARLIER('YourTable'[Date])
),
'YourTable'[Date],
,
ASC,
DENSE
)If you need it based on a specific sort order (like timestamp within the day):
Counter =
VAR CurrentDate = 'YourTable'[Date]
VAR CurrentRow = 'YourTable'[YourUniqueID] // or timestamp column
RETURN
COUNTROWS(
FILTER(
'YourTable',
'YourTable'[Date] = CurrentDate &&
'YourTable'[YourUniqueID] <= CurrentRow
)
)In Power Query (alternative):
The Power Query approach is more efficient for large datasets as it's computed during refresh rather than row-by-row like calculated columns.
Best regards!
PS: If you find this post helpful consider leaving kudos or mark it as solution
Hi,
thx for the post. I forgot to mention that I use PQ in Excel not PowerBI...
Hi @FabvE,
ok but no worries. Then check out if the Power Query alternative I mentioned works for you.
Best regards!
Yes, that worked perfectly. Thank you!!!!
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 12 | |
| 11 | |
| 7 | |
| 7 | |
| 6 |