Forum Discussion

mnarmeen's avatar
mnarmeen
Advocate I
9 years ago
Solved

TOP N

Hello Experts,    I need some suggestions. I have three tables 'invoice' , 'enteries' , 'customers' I want to shop TOP 5 customers(in customers table) who ordered the most quantity(in enteries tab...
  • v-huizhn-msft's avatar
    v-huizhn-msft
    9 years ago

    Hi mnarmeen,

    >>The id e,g 878 is repeating again and again

    TOPN function returns the top N rows of the specified table. When you use [itemQty] to filter the report, it returns all the top 5 rows based on [itemQty], it did't care the customer ID if is same.

    For your requirement, please create a measure get the sum of each customers.

    sum=CALCULATE(SUM(entries[itemQty]),ALLEXCEPT(Custom, Custom[ID]))


    Then create another measure used to filter the top 5 customers.

    RANK=RANKX(ALLSELECTED(Custom),[sum],,DESC,Dense)


    Finally, create a table visual, select the [ID], measure [sum] as value levels. Add the measure [RANK] as Visual level Filters, let the RANK value is less than or equals to 5, please review the following screenshot.



    Best Regards,
    Angelia

  • mnarmeen's avatar
    mnarmeen
    9 years ago

    Thankyou so much for the help. However I got it resolved by making a measure

     

    sumItemQty=sum(enteries[itemQty])

     

    and then used it in CustomerID filtering topN. 

     

    Yet, I dont know why it didnt work by simply puting ItemQty column in CustomerID topN and using SUM in aggregation.