Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

TopN and Ranking

Hello 

 

I have a set of data, as below.  I need to achieve the following:

  • summarise the customers
  • total the sales for each customer
  • rank the customer by total sales
  • put any customer outside top 2 as "other"

Finally, I need the table/rank to change if my slicer of vendor, for example, changes.

 

Any ideas?  

 

Thanks 

 

Data example:

 

Customer            Sales             Vendor

a                            100                    a

a                            100                    a

a                            100                    a

b                            100                    b

b                             50                    a

b                            100                    b

c                              10                    c

c                              50                    a

c                            100                    a

d                             90                    b

d                             20                    c

d                             60                    a

e                            100                    c

e                              75                    b

e                              50                    b

f                               40                    a

f                               90                    c

f                               75                    b

 

  • Anonymous

     

    Hello Anonymous,

     

    you need to build the below simple model

     

    and add the below measures:

     

    TotalSales = SUM( Sales[Sales] )
     
    Customer Rank = 
    IF(
        COUNTROWS( Sales ) > 0,
        VAR Ranking = 
        IF(
            HASONEVALUE( Customers[Customer] ),
            RANKX(
                ALLSELECTED( Customers[Customer] ),
                [TotalSales],,DESC
            )
        )
        RETURN IF( Ranking < 3, Ranking, "Other" )
    )

     

     

1 Reply

  • Anonymous

     

    Hello Anonymous,

     

    you need to build the below simple model

     

    and add the below measures:

     

    TotalSales = SUM( Sales[Sales] )
     
    Customer Rank = 
    IF(
        COUNTROWS( Sales ) > 0,
        VAR Ranking = 
        IF(
            HASONEVALUE( Customers[Customer] ),
            RANKX(
                ALLSELECTED( Customers[Customer] ),
                [TotalSales],,DESC
            )
        )
        RETURN IF( Ranking < 3, Ranking, "Other" )
    )