Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
8 years ago
Solved

Filter based list to use for calculation

Hi All,

I have scenario that I need to have sum(discount_amt) only for customers which has certain filter applied on it. I have query which gives me data customer wise discount applied., Now

1. I have to filter customers based on some other columns in same query and then 

2. Take thos ecustomers go to the all orders for those customers 

3. and then calculate discount amount for all orders.

 

Here in 1st step I may get 3 customers which has total(discoun_amt) as $100. But there may 10 orders for thsoe 3 customers which are getting filtered out due to filters in step 1.

Once I get 3 customers I need to clear the filters and goto all orders for those 3 customers and then sum(discount_amount) and show that as Promotion Discount.

 

Hope it helps...

  • Anonymous's avatar
    Anonymous
    8 years ago

    Hi Anonymous,

     

    You can try to use below measure to use the filtered result as the parameter to filter on original table:

    Multi-filter result =
    VAR filtred =
        CALCULATETABLE ( VALUES ( 'Sample'[Cust Id] ), ALLSELECTED ( 'Sample' ) )
    RETURN
        SUMX ( FILTER ( ALL ( 'Sample' ), [Cust Id] IN filtred ), [Disc Amount] )
    

     

    Regards,

    Xiaoxin Sheng

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable
    Cust IdSale IdSuccessYesterday5in90Disc Amount
    123111YNN1000
    234222YYY2000
    123333YYY3000
    456444YYN4000
    789555NYN5000

     

    For Ex in Above tBale if I apply filter as Success=Y,Yesterday=Y and 5in 90 =Y I get below customers 

     

    Cust IdSale IdSuccessYesterday5in90Disc Amount
    234222YYY2000
    123333YYY3000

     

    Then I need to clear all filters goto all sale IDs for Cust ID 234,123 which are below

     

    Cust IdSale IdSuccessYesterday5in90Disc Amount
    123111YNN1000
    234222YYY2000
    123333YYY3000

     

    and then do sum(discount_amount) which is $6000, I wanted to do this in DAX if possible.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Anonymous,

       

      You can try to use below measure to use the filtered result as the parameter to filter on original table:

      Multi-filter result =
      VAR filtred =
          CALCULATETABLE ( VALUES ( 'Sample'[Cust Id] ), ALLSELECTED ( 'Sample' ) )
      RETURN
          SUMX ( FILTER ( ALL ( 'Sample' ), [Cust Id] IN filtred ), [Disc Amount] )
      

       

      Regards,

      Xiaoxin Sheng

    • parry2k's avatar
      parry2k
      Icon for Super User rankSuper User

      Try this measure 

       

      Total Discount = CALCULATE([Total Discount Amount], ALLEXCEPT('Cust Slicer', 'Cust Slicer'[Cust Id]) )
      • Anonymous's avatar
        Anonymous
        Not applicable

        whats cust slicer here