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!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
Please see the table below:
| Field | Period | Date |
| P1 | 2324 | 10/01/2024 |
| P1 | 2324 | 10/01/2024 |
| P1 | 2324 | 11/02/2024 |
| P1 | 2425 | 02/08/2025 |
| P1 | 2425 | 01/15/2025 |
| P2 | 2324 | 05/05/2024 |
| P2 | 2324 | 04/01/2024 |
| P2 | 2425 | 01/01/2025 |
| P2 | 2425 | 02/10/2025 |
| P2 | 2425 | 02/10/2025 |
| P2 | 2425 | 01/25/2025 |
This table shows the dates that a certain product was applied to a certain field. I need a column that shows the application number that occurred on that date of the especific period. It should look like this:
| Field | Period | Date | Application |
| P1 | 2324 | 10/01/2024 | 1 |
| P1 | 2324 | 10/01/2024 | 1 |
| P1 | 2324 | 11/02/2024 | 2 |
| P1 | 2425 | 02/08/2025 | 2 |
| P1 | 2425 | 01/15/2025 | 1 |
| P2 | 2324 | 05/05/2024 | 2 |
| P2 | 2324 | 04/01/2024 | 1 |
| P2 | 2425 | 01/01/2025 | 1 |
| P2 | 2425 | 02/10/2025 | 3 |
| P2 | 2425 | 02/10/2025 | 3 |
| P2 | 2425 | 01/25/2025 | 2 |
If two lines have the three identical pieces of information, the application number must be the same.
Solved! Go to Solution.
Hi @jobf ,
Use this DAX:
Application =
VAR UniqueRank =
RANKX(
FILTER(
ADDCOLUMNS(
SUMMARIZE('Table', 'Table'[Field], 'Table'[Period], 'Table'[Date]),
"Rank", 'Table'[Date]
),
'Table'[Field] = EARLIER('Table'[Field]) &&
'Table'[Period] = EARLIER('Table'[Period])
),
'Table'[Date],
,
ASC,
DENSE
)
RETURN UniqueRank
The output will look like this:
Hi @jobf ,
To achieve your goal, please, create a new calculated column by this DAX:
Application =
RANKX(
FILTER(
'Table',
'Table'[Field] = EARLIER('Table'[Field]) &&
'Table'[Period] = EARLIER('Table'[Period])
),
'Table'[Date],
,
ASC,
DENSE
)
This will return this result:
The problem is that sometimes there will be more than one line with the same field, period and date. I needed the code to then put the same application number in both equal lines.
Hi, can you provide a sample data including that scenario and the updated desired result?
Hi @jobf ,
But you can try to rank only the unique dates within each Field and Period.:
Application =
VAR UniqueRank =
RANKX(
FILTER(
ADDCOLUMNS(
SUMMARIZE('Table', 'Table'[Field], 'Table'[Period], 'Table'[Date]),
"Rank", 'Table'[Date]
),
'Table'[Field] = EARLIER('Table'[Field]) &&
'Table'[Period] = EARLIER('Table'[Period])
),
'Table'[Date],
,
ASC,
DENSE
)
RETURN UniqueRank
The output will look like this:
I updated the statement and tables.
Hi @jobf ,
Use this DAX:
Application =
VAR UniqueRank =
RANKX(
FILTER(
ADDCOLUMNS(
SUMMARIZE('Table', 'Table'[Field], 'Table'[Period], 'Table'[Date]),
"Rank", 'Table'[Date]
),
'Table'[Field] = EARLIER('Table'[Field]) &&
'Table'[Period] = EARLIER('Table'[Period])
),
'Table'[Date],
,
ASC,
DENSE
)
RETURN UniqueRank
The output will look like this:
Hey @jobf,
Please check if this thread helps to solve your issue:
https://community.fabric.microsoft.com/t5/Desktop/TOP-N-by-few-columns/m-p/4406944#M1372085
Just an alternative solution, if anyone was interested, for adding calculated column using RANK function:
| User | Count |
|---|---|
| 49 | |
| 37 | |
| 33 | |
| 22 | |
| 18 |
| User | Count |
|---|---|
| 132 | |
| 100 | |
| 56 | |
| 37 | |
| 37 |