Forum Discussion
Subtotal in Matrix visual dynamic calculation error
BHPler , Try using
Values FirstTimePass =
VAR CountCodes = SUM('Config'[Total Periods FirstTimePass])
VAR MainPeriod =
CONVERT(
MAXX(
ALLSELECTED(DateDim[DateCode]),
DateDim[DateCode]
),
STRING
)
VAR StartPeriod =
CONVERT(
MINX(
ALLSELECTED(DateDim[DateCode]),
DateDim[DateCode]
),
STRING
)
VAR Target = MainPeriod
VAR DisplayItem = SELECTEDVALUE('FirstTimePass Header Table'[Order])
VAR FirstCode =
CALCULATE(
SUM('FirstTimePass Header Table'[Order]),
'FirstTimePass Header Table'[Value] = StartPeriod
)
VAR LastCode =
CALCULATE(
SUM('FirstTimePass Header Table'[Order]),
'FirstTimePass Header Table'[Value] = MainPeriod
)
VAR FirstRank = IF(FirstCode = BLANK(), MIN('First Time Pass'[Date Rank]), FirstCode)
VAR LastRank = IF(LastCode = BLANK(), MAX('First Time Pass'[Date Rank]), LastCode)
VAR Reference =
CALCULATE(
SUM('First Time Pass'[KPI]),
ALL('FirstTimePass Header Table'),
'FirstTimePass Header Table'[Value] = MainPeriod
)
VAR Compare1 =
CALCULATE(
SUM('First Time Pass'[KPI]),
ALL('FirstTimePass Header Table'),
'FirstTimePass Header Table'[Value] = StartPeriod
)
VAR Compare2 =
CALCULATE(
SUM('First Time Pass'[Target]),
ALL('FirstTimePass Header Table'),
'FirstTimePass Header Table'[Value] = Target
)
VAR CompareToDate =
VAR Subtraction1 = Reference - Compare1
RETURN
IF(
HASONEFILTER('First Time Pass'[Site]),
FORMAT(Subtraction1 * 100, "#"),
FORMAT(
AVERAGEX(
VALUES('First Time Pass'[Site]),
CALCULATE(Reference - Compare1) * 100
),
"#"
)
)
VAR CompareToTarget =
VAR Subtraction2 = Reference - Compare2
RETURN
IF(
HASONEFILTER('First Time Pass'[Site]),
FORMAT(Subtraction2 * 100, "#"),
FORMAT(
AVERAGEX(
VALUES('First Time Pass'[Site]),
CALCULATE(Reference - Compare2) * 100
),
"#"
)
)
VAR ValuesFirstTimePass =
IF(
HASONEFILTER('First Time Pass'[Site]),
SUM('First Time Pass'[KPI]),
DIVIDE(
SUM('First Time Pass'[KPI]),
DISTINCTCOUNT('First Time Pass'[Site])
)
)
VAR Actual_Target =
IF(
HASONEFILTER('OEE'[Site]),
FORMAT(Compare2, "0%"),
FORMAT(
CALCULATE(
AVERAGE('First Time Pass'[Target]),
ALL('FirstTimePass Header Table'),
'FirstTimePass Header Table'[Value] = Target
),
"0%"
)
)
VAR Test =
SWITCH(
TRUE(),
DisplayItem <= LastRank && DisplayItem >= FirstRank, ValuesFirstTimePass,
DisplayItem = CountCodes + 1, IF(CompareToDate = BLANK(), BLANK(), FORMAT(CompareToDate, "#")),
DisplayItem = CountCodes + 2, Actual_Target,
DisplayItem = CountCodes + 3, IF(CompareToTarget = BLANK(), BLANK(), FORMAT(CompareToTarget, "#"))
)
RETURN
IF(Test = BLANK(), BLANK(), Test)
- BHPler1 year agoFrequent Visitor
Thank you your solution!
It seems that now the issue is that the values for the vs Start Period and vs Target are not displaying at all:
They work perfectly for the rows, but the subtotal is missing. I would have it to calculate the "ST" for those two columns as well, meaning that in the example above it would show the difference of 97% vs 95% (i.e. the value of 2 for vs Start Period - 2410 and 1 for the vs Target).
I use a Matrix visual and have no additional filters on the page or visual.