Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Most sold product

Hello,

 

I am trying to do some customer analysis with a transactional data set.

 

I would like the ability to draw from all of the individual transaction lines a table somethin like this:

 

Customer Name | Most bought product

 

The way I would define the Most bought product column is the product with the highest sales value.

 

For example:

 

If Joe Blogs bought the following off me:

 

£100 on Carrots

£50 on potatoes 

£75 on Steak

£150 on Lobster

 

I would want the table to show 

 

Joe Bloggs | Lobster

 

Thank you for your help

  • Hey,

     

    I would use the DAX function TOPN: https://dax.guide/topn/ for example this measure:

    TOP 1 Product = 
    CONCATENATEX(
        TOPN(
            1 
            , VALUES('Product'[ModelName]) 
            , CALCULATE(SUM('Reseller Sales'[OrderQuantity])) 
        )
        , [ModelName]
        , ", "
    )

    Please be aware that, there are multiple products, that have been the same "value", that you are using for the comparison.

     

    Hopefully this provides some ideas, to slove your requirement.

     

    Regards,

    Tom

     

2 Replies

  • Hey,

     

    I would use the DAX function TOPN: https://dax.guide/topn/ for example this measure:

    TOP 1 Product = 
    CONCATENATEX(
        TOPN(
            1 
            , VALUES('Product'[ModelName]) 
            , CALCULATE(SUM('Reseller Sales'[OrderQuantity])) 
        )
        , [ModelName]
        , ", "
    )

    Please be aware that, there are multiple products, that have been the same "value", that you are using for the comparison.

     

    Hopefully this provides some ideas, to slove your requirement.

     

    Regards,

    Tom

     

  • Cmcmahan's avatar
    Cmcmahan
    Icon for Resident Rockstar rankResident Rockstar

    What do you want to do in the case of a tie? 

     

    MostPurchasedProduct = CALCULATE( SELECTEDVALUE(Products[ItemName]), TOPN(1, ADDCOLUMNS( VALUES(Products[ItemName]), "Total Spent", CALCULATE(SUM(Products[Amt Spent]))), [Total Spent], DESC))