Forum Discussion
Create calculated row
- 8 years ago
try this
EDIT - removed inactive link, uploaded the sample file
- 8 years ago
assuming there is Tax% in classification table
you create a new measure defining the new ratioRatioTax := DIVIDE ( CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = "Trading Income" ), CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = "Taxation" ) )and adjust the final measure
SumAndRatio:= VAR varClassification = UPPER(IF(HASONEVALUE(Classification[Classification]),VALUES(Classification[Classification]),BLANK())) RETURN SWITCH(varClassification, "COS%",[RatioCoS], "Tax%",[RatioTax], [RegularSum] )
etc.
you could also consider extending the classification table with the definions of ratios, and use that as more general pattern, e.g.RatioFlag Classification Nominator Denominator FALSE Trading Income NA NA FALSE Cost of Sales NA NA FALSE Taxation NA NA TRUE CoS% Trading Income Cost of Sales TRUE Tax% Trading Income Taxation Ratio = VAR Nom = SELECTEDVALUE(Classification[Nominator]) VAR Denom = SELECTEDVALUE(Classification[Denominator]) RETURN DIVIDE ( CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = Nom ), CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = Denom ) )SumAndRatio = VAR varRatioFlag = IF(HASONEVALUE(Classification[RatioFlag]),VALUES(Classification[RatioFlag]),BLANK()) RETURN IF(varRatioFlag,[Ratio],[RegularSum])
try this
EDIT - removed inactive link, uploaded the sample file
Hey Stachu,
Your solution works, thanks so much!!
I have one more questions in terms of scalability:
How do I add a second or third custom calculation (For example Tax% -Using your data just Trading Income / Taxation) so that it is included in the table? Thus:
CoS% 0.75 etc
Cost of sales 1.20 etc
Taxation 0.2 etc
Tax% 6.0 etc
...and so forth.
I attempted to add it but to no avail. Table displays only the one or the other.
Thanks in advance!
- Stachu8 years agoCommunity Champion
assuming there is Tax% in classification table
you create a new measure defining the new ratioRatioTax := DIVIDE ( CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = "Trading Income" ), CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = "Taxation" ) )and adjust the final measure
SumAndRatio:= VAR varClassification = UPPER(IF(HASONEVALUE(Classification[Classification]),VALUES(Classification[Classification]),BLANK())) RETURN SWITCH(varClassification, "COS%",[RatioCoS], "Tax%",[RatioTax], [RegularSum] )
etc.
you could also consider extending the classification table with the definions of ratios, and use that as more general pattern, e.g.RatioFlag Classification Nominator Denominator FALSE Trading Income NA NA FALSE Cost of Sales NA NA FALSE Taxation NA NA TRUE CoS% Trading Income Cost of Sales TRUE Tax% Trading Income Taxation Ratio = VAR Nom = SELECTEDVALUE(Classification[Nominator]) VAR Denom = SELECTEDVALUE(Classification[Denominator]) RETURN DIVIDE ( CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = Nom ), CALCULATE ( [RegularSum], ALL ( 'Classification'[Classification] ), 'Classification'[Classification] = Denom ) )SumAndRatio = VAR varRatioFlag = IF(HASONEVALUE(Classification[RatioFlag]),VALUES(Classification[RatioFlag]),BLANK()) RETURN IF(varRatioFlag,[Ratio],[RegularSum])
- DieLem8 years agoHelper II
Perfect!
Thanks so much!! - tomtang6 years agoHelper III
Thanks for sharing the information.
I've copied the approach in my dashboard and the ratios are really calculating automatically.
However, when I am trying to visualize in Matrix, the row of the ratios still empty.
Like in snapshot1 (left side is MTD, the right side is YTD), the ratios are blank.
But when I click "Gross Margin%" in YTD matrix, the ratio pops up in MTD matrix at the total level
Below are the DAX I built in my dashboard:
1. Simply sum up dollar value
*SignedData_USD_Sum = Sum(BUCONSOL_Combined[*SignedData_USD])
2. Calculate ratios
*Metrics_AllRatio =VAR Nom = SELECTEDVALUE(MatrixMap[Nominator])VAR Denom = SELECTEDVALUE(MatrixMap[Denominator])RETURNFORMAT(DIVIDE(CALCULATE([*SignedData_USD_Sum],ALL(MatrixMap[Tech_Name]),MatrixMap[Tech_Name] = Nom),CALCULATE([*SignedData_USD_Sum],ALL(MatrixMap[Tech_Name]),MatrixMap[Tech_Name] = Denom)),"Percent")3. DAX decide which classification to show ratio or dollar value*SignedDataAndRatio =VAR varRatioFlag = UPPER(IF(HASONEVALUE(MatrixMap[RatioFlag]),VALUES(MatrixMap[RatioFlag]),BLANK()))RETURNIF(varRatioFlag,[*Metrics_AllRatio],[*SignedData_USD_Sum])Do you happen to know any error I might make?
Thanks!