Forum Discussion
ranking on text column
I have one table, where I want to create rank on basis of text value,
The table is with one column which is sorted like this as shown below, and would like a rank on just this only, there is no corresponding aggregate function, neither any number column for this, Can anyone please help me achieve the desired output.
Input:-
| batch |
| 2 |
| 3 |
| 4 |
| a3 |
| a56 |
| dfg |
Output:-
| batch | rank |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| a3 | 4 |
| a56 | 5 |
| dfg | 6 |
I have tried these measures, but it is not working,
Measure = RANKX ( ALL ( 'Table1'[FullName] ), CALCULATE ( SUM ( 'Table1'[Index] ) ) )
It is showing error as data value is exceeded where original data has just 200 rows only.
Hi Jessica_17
Try to use the measure :rank_text = RANKX(ALLSELECTED('Table'[batch]),CALCULATE(max('Table'[batch])),,ASC)Result :
pbix is attached
If this post helps, then please consider Accepting it as the solution to help the other members find it more quicklyHi Jessica_17
Did you download a pbix and folllowed my steps?
If yes , please share link to the pbix of yours and i will try to help.
you can do this in power query.
it will be better this wayHi Jessica_17
What is the ranking's purpose?
If the rank should be static, you can use Ahmedx's suggestion.
If the table has duplicate batches.
You can duplicate the table, remove all unnecessary columns, and add an index column (with power query like in the attached images.
If the batches are unique you can just add an index.create a relationship
And use the index as a needed rank (note that you have duplicates)
if you need it as a dynamic measure :
Use a measure
rank_dynamic = RANKX(all('Table'),CALCULATE(max('Table'[batch])),,ASC)New pbix is attached
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
- Anonymous2 years ago
Hi Jessica_17 ,
You can create a measure as below to get it, please find the details in the attachment.
Rank = RANKX ( ALL ( 'Table1' ), CALCULATE ( MAX ( 'Table1'[Batch] ) ),, ASC, DENSE )Best Regards
hi, Jessica_17
try below for measure formulausing measure = RANK(DENSE,ALL('Table'[Batch],'Table'[Jobs]),ORDERBY('Table'[Batch],ASC,'Table'[Jobs],ASC))for column try below
using column = RANK(DENSE,ALL('Table'[Jobs],'Table'[Batch]),ORDERBY('Table'[Batch],asc,'Table'[Jobs],asc))If this post helps, then please consider Accept it as the solution to help the other members find it
to know how to do this watch my video
21 Replies
- Ahmedx
Super User
you can do this in power query.
it will be better this way- Jessica_17
Helper V
HI Ahmedx
I tried it in power query too, but it is not still not working.- Ahmedx
Super User
to help you, tell us what didn’t work for and where
show on the screenshot or post the data where the rank is violated
- Ritaf1983
Super User
Hi Jessica_17
Try to use the measure :rank_text = RANKX(ALLSELECTED('Table'[batch]),CALCULATE(max('Table'[batch])),,ASC)Result :
pbix is attached
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly- Jessica_17
Helper V
- Ritaf1983
Super User
Hi Jessica_17
Did you download a pbix and folllowed my steps?
If yes , please share link to the pbix of yours and i will try to help.
- Dangar332
Resident Rockstar
Hi, Jessica_17
try belowjust adjust table and column name
Measure 4 = RANKX(all('Table (2)'[batch]),'Table (2)'[batch],MIN('Table (2)'[batch]),ASC)- Jessica_17
Helper V
Hi Dangar332
by using your solution I am getting count from 62, maybe because I have added other columns too. can this be changed irrespective of other column values too or by any other tables filter too.- Dangar332
Resident Rockstar
hi, Jessica_17
it might happenbut provide some data so see where problem occure