Forum Discussion

selpaqm's avatar
selpaqm
Icon for Helper V rankHelper V
4 years ago
Solved

RANKX with SELECTEDVALUE

Hi,

 

I have a 6 different measure and want to use all of them on rankx with slicer. aim is creating a slicer with names of measures first then using selectedvalue and show top 10 figures on table.

I have created a table as figures and added measure names in to cells.

then created below dax but receiving error as "Special flag is not allowed as an argument number 3 of function 'RANKX'"

Top_10_Rating = 
Var
Selected=IF(SELECTEDVALUE(Figures[Figures])="aaa",[aaa],
IF(SELECTEDVALUE(Figures[Figures])="bbb",[bbb],
IF(SELECTEDVALUE(Figures[Figures])="ccc",[ccc],
IF(SELECTEDVALUE(Figures[Figures])="ddd",[ddd],
IF(SELECTEDVALUE(Figures[Figures])="eee",[eee],
IF(SELECTEDVALUE(Figures[Figures])="fff",[fff],BLANK()))))))
Var
mrank=RANKX(ALL(Table[Name]), Selected,desc)
return
IF(mrank<=10, Selected,BLANK())
  • selpaqm ,

     

    Top_10_Rating = 
    Var
    Selected=IF(SELECTEDVALUE(Figures[Figures])="aaa",[aaa],
    IF(SELECTEDVALUE(Figures[Figures])="bbb",[bbb],
    IF(SELECTEDVALUE(Figures[Figures])="ccc",[ccc],
    IF(SELECTEDVALUE(Figures[Figures])="ddd",[ddd],
    IF(SELECTEDVALUE(Figures[Figures])="eee",[eee],
    IF(SELECTEDVALUE(Figures[Figures])="fff",[fff],BLANK()))))))
    Var
    mrank=RANKX(ALL(Table[Name]), Selected,,desc)
    return
    IF(mrank<=10, Selected,BLANK())

     

    One addition is required.

     

    Also, my advice would create rank measures and then select then based on selection.

    in place [aaa] use Rank on aaa in the formula

3 Replies

  • selpaqm ,

     

    Top_10_Rating = 
    Var
    Selected=IF(SELECTEDVALUE(Figures[Figures])="aaa",[aaa],
    IF(SELECTEDVALUE(Figures[Figures])="bbb",[bbb],
    IF(SELECTEDVALUE(Figures[Figures])="ccc",[ccc],
    IF(SELECTEDVALUE(Figures[Figures])="ddd",[ddd],
    IF(SELECTEDVALUE(Figures[Figures])="eee",[eee],
    IF(SELECTEDVALUE(Figures[Figures])="fff",[fff],BLANK()))))))
    Var
    mrank=RANKX(ALL(Table[Name]), Selected,,desc)
    return
    IF(mrank<=10, Selected,BLANK())

     

    One addition is required.

     

    Also, my advice would create rank measures and then select then based on selection.

    in place [aaa] use Rank on aaa in the formula