Forum Discussion
Clara
Advocate II
7 years agoNeed help with measure! Chart with previous year values based on current-year slicer
So, my report has two slicers: one for years and one for (store) units. Both allow for multiple selections. So far I've managed to obtain each year's profitability through this measure: Profitabi...
- 7 years ago
You shouldn't need those ALLSELECTED filters I think, so I rewrote your ProfitabilityTY as well as providing the others. The following worked with this test data, the structure of which I guessed at from your measures:
Year ValueType Value 2010 Profit 10 2010 Revenue 100 2011 Profit 20 2011 Revenue 100 2012 Profit 30 2012 Revenue 90 2013 Profit 100 2013 Revenue 200 2014 Profit 200 2014 Revenue 300 2015 Profit 150 2015 Revenue 350 ProfitabilityTY = VAR ProfitTY = CALCULATE(SUM(Table1[Value]),Table1[ValueType]="Profit") VAR RevenueTY = CALCULATE(SUM(Table1[Value]),Table1[ValueType]="Revenue") RETURN DIVIDE(ProfitTY,RevenueTY)
ProfitabilityLT = CALCULATE( [ProfitabilityTY], FILTER( ALL(Table1[Year]), Table1[Year]=SELECTEDVALUE(Table1[Year])-1 ) )Growth =
IF(
//checks if this is first year, i.e. no data in LT, can also do isblank check on [ProfitabilityLT]
SELECTEDVALUE(Table1[Year])=CALCULATE(MIN(Table1[Year]),ALL(Table1[Year])),
BLANK(),
[ProfitabilityTY]-[ProfitabilityLT]
)Table visual with years and measures:
Does that help?
MarkLaf
Super User
7 years agoYou shouldn't need those ALLSELECTED filters I think, so I rewrote your ProfitabilityTY as well as providing the others. The following worked with this test data, the structure of which I guessed at from your measures:
| Year | ValueType | Value |
| 2010 | Profit | 10 |
| 2010 | Revenue | 100 |
| 2011 | Profit | 20 |
| 2011 | Revenue | 100 |
| 2012 | Profit | 30 |
| 2012 | Revenue | 90 |
| 2013 | Profit | 100 |
| 2013 | Revenue | 200 |
| 2014 | Profit | 200 |
| 2014 | Revenue | 300 |
| 2015 | Profit | 150 |
| 2015 | Revenue | 350 |
ProfitabilityTY = VAR ProfitTY = CALCULATE(SUM(Table1[Value]),Table1[ValueType]="Profit") VAR RevenueTY = CALCULATE(SUM(Table1[Value]),Table1[ValueType]="Revenue") RETURN DIVIDE(ProfitTY,RevenueTY)
ProfitabilityLT =
CALCULATE(
[ProfitabilityTY],
FILTER(
ALL(Table1[Year]),
Table1[Year]=SELECTEDVALUE(Table1[Year])-1
)
)
Growth =
IF(
//checks if this is first year, i.e. no data in LT, can also do isblank check on [ProfitabilityLT]
SELECTEDVALUE(Table1[Year])=CALCULATE(MIN(Table1[Year]),ALL(Table1[Year])),
BLANK(),
[ProfitabilityTY]-[ProfitabilityLT]
)
Table visual with years and measures:
Does that help?