Search code examples
powerbicalculationcumulative-summeasure

Calculating single values from cumulative data in Power BI


In my sales table I would like to change cumulative values into single values. Here is sample data from my table.

enter image description here

I created a measure that as far as I know should works for this.

sales_single_values =  VAR current_sales = SUM('sales'[sales cumulative]) VAR prev_sales SUM('sales'[sales cumulative]) - CALCULATE( current_sales, 'sales'[period] = 'sales'[period] - 1) Return IF(ISBLANK(prev_sales), BLANK(), current_sales - prev_sales)

But unfortunately the final result on the chart is still the same as I used cumulative values, not single ones. Any ideas what should I change in my measure?

enter image description here

Expected values would be:

Period 1: 4

Period 2: 2

Period 3: 7


Solution

  • As a measure, something like:

    sales_single_values = 
        var prev = max('sales'[period]) - 1
        var prev_sales =  CALCULATE( SUM('sales'[sales cumulative]), 'sales'[period] = prev) 
      Return 
        sum(sales[sales cumulative]) - prev_sales
    

    But this seems like more of a modeling transformation, so do it in PQ, or with a calculated column, like

    current sales = 
    
      var prev = calculate( max('sales'[period]) ) - 1
      var prevSales = calculate( sum(sales[sales cumulative]), all(sales), sales[period] = prev)
    
    return 
        sales[sales cumulative]-prevSales