This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreDid you hear? There's a new SQL AI Developer certification (DP-800). Start preparing now and be one of the first to get certified. Register now
I am trying to create a calculated column for my sales data. For example, if customer A has made 3 purchases in the whole sales history, I would want the most recent transaction rows be labelled "3" and the earliest "1", etc. The same thing goes for customers B, C, D, etc.
I think the formula involves RANKX and EARLIER, but I'm at loss over how it should work. Can anyone help?
Here's the onedrive link to my sample orders data file: https://1drv.ms/u/s!ApcbjU3iSiOxgqAkFM-5tqlTfoMasA
Thank you!
Solved! Go to Solution.
I've not looked at your data, but make an index column ordering all your transactions (if you don't already have a transaction ID column that runs sequentially in order already) then go with something like this:
I've not looked at your data, but make an index column ordering all your transactions (if you don't already have a transaction ID column that runs sequentially in order already) then go with something like this:
omg how did you manage to come up with this formula? Can you share your thought process behind it?
For example, why did you use ALL()? And why is it that we can just specify a column for the <Expression> parameter of the RANKX function? What is DENSE for?
Thank you so much! I've marked your post as the solution.
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 35 | |
| 32 | |
| 25 | |
| 23 | |
| 16 |
| User | Count |
|---|---|
| 65 | |
| 50 | |
| 30 | |
| 23 | |
| 23 |