cancel
Showing results for
Did you mean:

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Helper III

## ranking error

rank customer = RANKX(ALLSELECTED(Table1),CALCULATE(SUM(Table1[sales]),ALLEXCEPT(Table1,Table1[Customer],Table1[factory])))

so strange that A and B are at same rank, what is the problem here? thanks

1 ACCEPTED SOLUTION
Responsive Resident

Hi,

Looks like the Ranking is correct on that screen shot as it's performing the ranking at customer level for each factory.
you'd need to adjust the RANKX statement to perform the ranking at factory level to change the values.

I do something similar and I check to see what's filtered and amend the measure accordingly.

RankCustomer =
IF(HASONEVALUE(Table1[factory]),
RANKX(ALLSELECTED(Table1), CALCULATE(sum(Table1[sales]), ALLEXCEPT(Table,Table1[Customer], Table1[factory]))) ,
RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense) )

8 REPLIES 8
Responsive Resident

Hi @erihsehc,

I assume it's due to the Factory column included in your ALLEXCEPT function, this would work if you were displaying the column I think.

using the following works for me. (using my own column and table names)

RankCustomer = RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense)

Dog

Helper III

Thanks @Dog. I have tried the formula, the ranking is correct but the factory slicer is not working, the ranking remain unchanged when I select different country. how to make the ranking correct and also the slicer works? thanks

rank customer = RANKX(ALLSELECTED(Table1),CALCULATE(SUM(Table1[sales]),ALLEXCEPT(Table1,Table1[Customer])),,DESC,Dense)

Employee

Hi @erihsehc,

Based on my test, the formula below should work in your scenario.

```rank customer =
RANKX (
ALLSELECTED ( Table1 ),
CALCULATE ( SUM ( Table1[sales] ), ALLEXCEPT ( Table1, Table1[Customer], Table1[factory] ) ),
,
DESC,
DENSE
)
```

Regards

Helper III

thanks @v-ljerr-msft. The ranking is correct for factory, but if you select all factories and countries, the ranking is strange per my top post.

Employee

Hi @erihsehc,

My mistake.

Try the formula below. It should work.

```rank customer =
RANKX (
ALLSELECTED ( Table1[Customer]),
CALCULATE ( SUM ( Table1[sales] ), ALLEXCEPT ( Table1, Table1[Customer], Table1[factory] ) ),
,
DESC,
DENSE
)```

Regards

Helper III

thanks @v-ljerr-msft, it is what I want.

Out of curiosity, I added the factory field to the table, the ranking seems strange again, not sure the logic of this ranking.

Responsive Resident

Hi,

Looks like the Ranking is correct on that screen shot as it's performing the ranking at customer level for each factory.
you'd need to adjust the RANKX statement to perform the ranking at factory level to change the values.

I do something similar and I check to see what's filtered and amend the measure accordingly.

RankCustomer =
IF(HASONEVALUE(Table1[factory]),
RANKX(ALLSELECTED(Table1), CALCULATE(sum(Table1[sales]), ALLEXCEPT(Table,Table1[Customer], Table1[factory]))) ,
RANKX(ALLSELECTED(Sheet1), CALCULATE(sum(Sheet1[sales]), ALLEXCEPT(Sheet1,Sheet1[Customer])), ,DESC,Dense) )

Helper III

Thanks @Dog, I used this dax,, the ranking result is reasonable when twisting field

Announcements

#### New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

#### Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

#### Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors
Top Kudoed Authors