Forum Discussion

Bokchoy's avatar
Bokchoy
Helper II
4 years ago
Solved

Custom Sum based on matching column values

Hi All,

 

I have a single table where all sales records are kept. 

 

there are 2 types of sales records in this table. Primary sales record have a [Main] attribute of "M", and sub-records have a [Main] attribute of "S". Primary Sales records can contain many sub-records.

 

unfortunately all these records are kept on a single table and the [cost] of primary records are missing.

 

I need to manually calculate the [cost] of primary records by suming up all sub-records. sub-records have the same [date],[user_id] and [type] as the primary record. (see exmaple below)

 

How can i write this measure as a new column

 

 

  • Hi Bokchoy 

     

    Use this to create a new column

    Col Cost = CALCULATE(SUM([Cost]), FILTER('Table', 'Table'[Date] = EARLIER('Table'[Date])  && 'Table'[user_id] = EARLIER('Table'[user_id]) && 'Table'[Type] = EARLIER('Table'[Type])))

     

    Regards

     

    Phil

4 Replies

  • Hi Bokchoy 

     

    Use this to create a new column

    Col Cost = CALCULATE(SUM([Cost]), FILTER('Table', 'Table'[Date] = EARLIER('Table'[Date])  && 'Table'[user_id] = EARLIER('Table'[user_id]) && 'Table'[Type] = EARLIER('Table'[Type])))

     

    Regards

     

    Phil

    • Bokchoy's avatar
      Bokchoy
      Helper II

      Thank you sir, works perfectly 🙂

  • Hi Bokchoy 

     

    Download example PBIX file

     

    Use this measure

     

    MCost = CALCULATE(SUMX('Table', [Cost]), FILTER(ALL('Table'), 'Table'[Date] = MAX('Table'[Date]) && 'Table'[user_id] = MAX('Table'[user_id]) && 'Table'[Type] = MAX('Table'[Type])))

     

    regards

     

    Phil

    • Bokchoy's avatar
      Bokchoy
      Helper II

      Hi Philip, 
      This works perfect as a measure, but it doesnt seem to work as a custom column. 
      is there a way to achieve the same result while creating a new column?