Forum Discussion
How to write DAX for % change
- Anonymous2 years ago
Hi manojk_pbi ,
Please update the formula of measure as below to get it, please find the details in the attachment.
%Change = VAR _MY = SELECTEDVALUE ( 'Table'[MY] ) VAR _product = SELECTEDVALUE ( 'Table'[Product] ) VAR _preMY = CALCULATE ( MIN ( 'Table'[MY] ), FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Product] = _product ) ) VAR _preqty = CALCULATE ( SUM ( 'Table'[Qty] ), FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Product] = _product && 'Table'[MY] = _preMY ) ) RETURN IF ( _MY = _preMY, BLANK (), DIVIDE ( SUM ( 'Table'[Qty] ) - _preqty, _preqty ) )Best Regards
That is a very, very subjective topic especially when sign changes are involved (like in your case).
One approximation is DIVIDE(current-previous, ABS(previous),BLANK())
But at the end of the day you have to decide what is a reasonable number in your scenarios.
- manojk_pbi2 years agoHelper V
Thanks for your input.
I am looking for suggestion on writing measure to calculate % Change .
- Anonymous2 years agoNot applicable
lbendlin Thanks for your contribution on this thread.
Hi manojk_pbi ,
lbendlin already gave the related formula. If you want to get the expected result base on your sample data, you can create a measure as below to get it:
%Change = VAR _MY = SELECTEDVALUE ( 'Table'[MY] ) VAR _preMY = CALCULATE ( MIN ( 'Table'[MY] ), ALLSELECTED ( 'Table' ) ) VAR _preqty = CALCULATE ( SUM ( 'Table'[Qty] ), FILTER ( ALLSELECTED ( 'Table' ), 'Table'[MY] = _preMY ) ) RETURN IF ( _MY = _preMY, BLANK (), DIVIDE ( SUM ( 'Table'[Qty] ) - _preqty, _preqty ) )Best Regards
- manojk_pbi2 years agoHelper V
Anonymous , this is perfect. Thanks for the working sample. If i were had to add Product into filter to calculate % Change for each product what changes to be made here ?
Pls suggest