Forum Discussion
KG1
6 years agoResolver I
Help Required to Create a Custom Matrix
Hi I need to be able to create a matrix like this which plots a value inside a matrix based on its score. Could anyone offer some advice as to whether this would be possible and how it can be done?...
- 6 years ago
Hi,
According to your description, i think i can not completely reach your requirement, but i have a workaround.
You can create a table called 'Heat Map' like this by Enter Data:
Copy this table called 'Heat Map (2)' in Query Editor and unpivot it, it shows:
Then choose Table Hearmap visual from App Source to show Table 'Heat Map', it shows:
Refer to your table posted, i create these measures to show each risk's X-axis and Y-axis in above heatmap visual:
risk 1-check = var a = CALCULATE(MAX('Table'[Residual Score]),FILTER('Table','Table'[Risk Title]="Risk 1"))-MAX('Hear Map (2)'[Value]) return IF(a>=0,a,100) risk 2-check = var a = CALCULATE(MAX('Table'[Residual Score]),FILTER('Table','Table'[Risk Title]="Risk 2"))-MAX('Hear Map (2)'[Value]) return IF(a>=0,a,100) risk 3-check = var a = CALCULATE(MAX('Table'[Residual Score]),FILTER('Table','Table'[Risk Title]="Risk 3"))-MAX('Hear Map (2)'[Value]) return IF(a>=0,a,100) risk 4-check = var a = CALCULATE(MAX('Table'[Residual Score]),FILTER('Table','Table'[Risk Title]="Risk 4"))-MAX('Hear Map (2)'[Value]) return IF(a>=0,a,100) risk 1 = IF([risk 1-check]=MINX(ALLSELECTED('Hear Map (2)'),[risk 1-check]),1,0) risk 2 = IF([risk 2-check]=MINX(ALLSELECTED('Hear Map (2)'),[risk 2-check]),1,0) risk 3 = IF([risk 3-check]=MINX(ALLSELECTED('Hear Map (2)'),[risk 3-check]),1,0) risk 4 = IF([risk 4-check]=MINX(ALLSELECTED('Hear Map (2)'),[risk 4-check]),1,0)Then try these two measures:
_Category = SWITCH ( TRUE, MAX ( 'Table'[Risk Title] ) = "Risk 1", CALCULATE ( MAX ( 'Hear Map (2)'[Category] ), FILTER ( 'Hear Map (2)', [risk 1] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 2", CALCULATE ( MAX ( 'Hear Map (2)'[Category] ), FILTER ( 'Hear Map (2)', [risk 2] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 3", CALCULATE ( MAX ( 'Hear Map (2)'[Category] ), FILTER ( 'Hear Map (2)', [risk 3] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 4", CALCULATE ( MAX ( 'Hear Map (2)'[Category] ), FILTER ( 'Hear Map (2)', [risk 4] = 1 ) ) ) _Attribute = SWITCH ( TRUE, MAX ( 'Table'[Risk Title] ) = "Risk 1", CALCULATE ( MAX ( 'Hear Map (2)'[Attribute] ), FILTER ( 'Hear Map (2)', [risk 1] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 2", CALCULATE ( MAX ( 'Hear Map (2)'[Attribute] ), FILTER ( 'Hear Map (2)', [risk 2] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 3", CALCULATE ( MAX ( 'Hear Map (2)'[Attribute] ), FILTER ( 'Hear Map (2)', [risk 3] = 1 ) ), MAX ( 'Table'[Risk Title] ) = "Risk 4", CALCULATE ( MAX ( 'Hear Map (2)'[Attribute] ), FILTER ( 'Hear Map (2)', [risk 4] = 1 ) ) )The result shows:
Here is my test pbix file:
Hope this helps.
Best Regards,
Giotto Zhi
KG1
6 years agoResolver I
Thank you for replying
In this sample data, Risk 2 would be plotted in the upper right quadrant (as high risk) and risks 3 and 4 would be in the lower left quadrant