Forum Discussion
Calculation of difference between two rows
Hi
I need to calcualte the difference between two values which is different depending on a "version"-Value. If its the version "Basis" the difference should be calculated bewtween the years (eg. 2026-2025), if its "V1"-"V2" the calculation should compare it to the "Basis" (eg. V1 - Basis). The differnce should be calculated accoring to this logic:
I've tried several approaches, including an index (Difference). In a Dax-formula I've tried with ALL an FILTER to get the values for the "Difference-Index". But ist not really working within the filter context of a mtraix table, which includes drill-downs with other attributes.
Any tipps would be appreciated!
I think a visual calculation here would be the best approach anyway so I try to solve it immediately using the names in the visual picture you sent
Difference Visual CALC =
VAR MinYear = MINX ( ROWS, [Jahr] )VAR CurrentYear = [Jahr]
RETURNIF (
[Variante] = "Basis" && CurrentYear <> MinYear && ISATLEVEL ( [Jahr] ),[DVE]- CALCULATE ( [DVE], [Jahr] = CurrentYear -1 ),
[DVE] - CALCULATE ( [DVE], [Variante] = "Basis" )
)If you need to reuse this concept you need a regular measure, in that case refer to my previous post to provide some data
If this helped, please consider giving kudos and mark as a solution
mein replies or I'll lose your threadconsider voting this Power BI idea
Francesco Bergamaschi
MBA, M.Eng, M.Econ, Professor of BI
9 Replies
- FBergamaschiSuper User
Hi
Please include a small rows subset (not an image) of all the tables involved in your request, so that we can import them in Power BI and reproduce the data model (please show it). Please include also the DAX you wrote so far and the result you get. In this way we can reproduce the scenario and help you. Thank you
- FBergamaschiSuper User
I think a visual calculation here would be the best approach anyway so I try to solve it immediately using the names in the visual picture you sent
Difference Visual CALC =
VAR MinYear = MINX ( ROWS, [Jahr] )VAR CurrentYear = [Jahr]
RETURNIF (
[Variante] = "Basis" && CurrentYear <> MinYear && ISATLEVEL ( [Jahr] ),[DVE]- CALCULATE ( [DVE], [Jahr] = CurrentYear -1 ),
[DVE] - CALCULATE ( [DVE], [Variante] = "Basis" )
)If you need to reuse this concept you need a regular measure, in that case refer to my previous post to provide some data
If this helped, please consider giving kudos and mark as a solution
mein replies or I'll lose your threadconsider voting this Power BI idea
Francesco Bergamaschi
MBA, M.Eng, M.Econ, Professor of BI
- SchmidMatt84New Member
Thanks, I've tried visual calculations as well. But that doesn't work in combination with field parameters? If there's a possibility to solve it with dax measures, that would be preferable...
- SchmidMatt84New Member
Hi
I've included a small subset ot the data an the relevant master data here:
The data model looks like this:
- FBergamaschiSuper User
My solution with measures
Wert Value = SUM ('10_Total_Merge'[Wert] ) this is the measure I am referringWert Delta =VAR _Variante = SELECTEDVALUE( '90_Version'[Variante] )VAR CurrentYear = SELECTEDVALUE( '90_Version'[Jahr] )VAR MinYear = CALCULATE( MIN ( '90_Version'[Jahr] ), REMOVEFILTERS( ) )RETURNIF (_Variante = "Basis" && CurrentYear <> MinYear && ISINSCOPE( '90_Version'[Jahr] ),[Wert Value]- CALCULATE ( [Wert Value], '90_Version'[Jahr] = CurrentYear - 1 ),[Wert Value] - CALCULATE ( [Wert Value], '90_Version'[Variante] = "Basis" ))If this helped, please consider giving kudos and mark as a solution
me in replies or I'll lose your threadconsider voting this Power BI ideaFrancesco Bergamaschi
MBA, M.Eng, M.Econ, Professor of BI