Forum Discussion
Raul
9 years agoPost Patron
Difference between two columns or rows
Hello everybody, I need to find the difference between two columns or two rows within a table or matrix of values. I have the following situation: YEAR ZONE EAST W...
- 9 years ago
Create a measure called "Difference"
Difference = IF ( HASONEVALUE ( 'Table'[YEAR] ), BLANK (), CALCULATE ( SUM ( 'Table'[AMOUNT] ), FILTER ( 'Table', 'Table'[YEAR] = MAX ( 'Table'[YEAR] ) ) ) - CALCULATE ( SUM ( 'Table'[AMOUNT] ), FILTER ( 'Table', 'Table'[YEAR] = MIN ( 'Table'[YEAR] ) ) ) )Then a measure called "%Inc"
%Inc = DIVIDE ( [Difference], CALCULATE ( SUM ( 'Table'[AMOUNT] ), FILTER ( 'Table', 'Table'[YEAR] = MIN ( 'Table'[YEAR] ) ) ) )Then just shrink the columns in your matrix that have no data so they don't show up, and make sure to turn the row totals on:
Oh and change the formatting/style for the measures as desired.
Raul
9 years agoPost Patron
Hi smoupre,
This is the sample data:
| ID | ZONE | DATEPHYS | AMOUNT | YEAR |
| 1 | EAST | 01/02/2015 | 3.000 | 2015 |
| 2 | WEST | 01/02/2015 | 1.000 | 2015 |
| 3 | NORTH | 01/02/2015 | 2.500 | 2015 |
| 4 | EAST | 01/03/2015 | 1.320 | 2015 |
| 5 | WEST | 01/03/2015 | 2.200 | 2015 |
| 6 | NORTH | 01/03/2015 | 2.500 | 2015 |
| 7 | EAST | 01/02/2016 | 2.000 | 2016 |
| 8 | WEST | 01/02/2016 | 1.000 | 2016 |
| 9 | NORTH | 01/02/2016 | 2.000 | 2016 |
| 10 | EAST | 01/03/2016 | 3.200 | 2016 |
| 11 | WEST | 01/03/2016 | 1.000 | 2016 |
| 12 | NORTH | 01/03/2016 | 5.500 | 2016 |
I create the new measure like this:
Difference = CALCULATE(SUM([AMOUNT]);FILTER(Tabla1;[Year]=MAX([Year])) - CALCULATE(SUM([AMOUNT]);FILTER(Tabla1;[Year]=MIN([Year]))))
But it throw an error in the FILTER function. What is wrong?
Thanks
Greg_Deckler
9 years agoCommunity Champion
Try this:
Difference = var MaxYear = MAX(Zones[YEAR]) var MinYear = MIN(Zones[YEAR]) RETURN CALCULATE(SUM([AMOUNT]),Zones[YEAR]=MaxYear) - CALCULATE(SUM([AMOUNT]),Zones[YEAR]=MinYear)