Forum Discussion

Bu__'s avatar
Bu__
Frequent Visitor
2 years ago
Solved

Filtering a table using TOP N slicer

Hi,

i have a TOP N slicer which is a what if parameter from 0 to 50, i am trying to filter TOP N qty for a product in a table.

please note there is already a TOPN filter on week for the table visual like pic below, so another topn is not possible

and the data does not have an id/unique column and the products are repeted several times and the week in the sample is different from the topn loaddateweek.

I am using a DAX measure to calculate the top products

TOP N measure =
VAR SelectedTop = SELECTEDVALUE('TOPN'[TOPN])
RETURN
SWITCH(TRUE(),
    SelectedTop = 0, [Still to supply_sum],
    RANKX(
        ALLSELECTED(table[week],table[Product]),
        [Still to supply_sum], ,DESC,Dense
        ) <= SelectedTop,
    [Still to supply_sum]
)
 
but this is not filtering for only 1 value when top n filter selected =1, but shows multiple value.
Sample data is like below:
WeekProductStill to supply_sumrank
2024 346708587201
2024 407706649191
2024 386708481202
2024 406708430402
2024 38731344003
2024 366708335603
2024 397448360003
2024 416961320405
2024 38300300806
2024 36300281207
2024 307551247209
2024 411221160102216010
2024 367312156011
2024 4175511979015
2024 3275511916817
2024 313001620424
2024 323001566925

Not sure how to solve this issue to just have rank that does not repeat for a another row for the same product.

 

Thanks for the help in advance.

  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi Bu__ ,

     

    Do you mean that you want to show TopN for each week? I think you can try ALLEXCEPT() function.

    rank = 
    VAR SelectedTop = SELECTEDVALUE('TOPN'[TOPN])
    RETURN
    SWITCH(TRUE(),
        SelectedTop = 0, [Still to supply_sum],
        RANKX(
            ALLEXCEPT('Table','Table'[Week]),
            [Still to supply_sum], ,DESC,Dense
            ) <= SelectedTop,
        [Still to supply_sum]
    )

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.