Forum Discussion

yybi123's avatar
yybi123
Helper I
5 years ago
Solved

Format value base on matrix row total

Hi, I have a matrix visual like below. How can I format the value base on the row total. 

The value in this matrix is a Unit Price measure =  Sum(Price)/Sum(Unit)

For example Non Premium Category the total is 4.4 , I want to format anything above it to be green and below to be red. In this case John and Will column will be green and Michelle will be red. 

 

It should be dynamic as the category being expanded to lower level with different row total. 
For example, Premium  - A row the colour format rule will be based on 4.67.

 

Thank you.

  • Hi, yybi123 

    I create a demo based on you data. Please try  measures as below:

     

    Unit Price2 =
    VAR a =
        CALCULATE ( SUM ( 'Table'[Price] ), ALLSELECTED ( 'Table'[Name] ) )
    VAR b =
        CALCULATE ( SUM ( 'Table'[Unit] ), ALLSELECTED ( 'Table'[Name] ) )
    RETURN
        CALCULATE (
            SUM ( 'Table'[Price] ) / SUM ( 'Table'[Unit] ),
            ALLSELECTED ( 'Table'[Name] )
        )
    
    Color measure =
    IF ( [Unit Price] < [Unit Price2], "tomato", "lightGreen" )
    

     

    Then apply the "Color measure" to conditional formatting.

    Result :

     

    Please check my sample pbix for more details.

    Best Regards,
    Community Support Team _ Eason
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

5 Replies

  • yybi123 , You can not color row in the matrix as of now. You have color all measures/values.

     

    You can create a color measure based on a measure or column/row values and use that on  conditional formatting

    using field value option

     

    examples

     

    Color sales = if([Sales Today] -[sales yesterday]>0,"green","red")

    color =
    switch ( true(),
    FIRSTNONBLANK('Table'[commodity],"NA") ="commodity1" && sum('Table'[Value]) >500,"lightgreen",
    FIRSTNONBLANK('Table'[commodity],"NA") ="commodity2" && sum('Table'[Value]) >1000,"lightgreen",
    // Add more conditions
    "red"
    )

     

    Refer to my video, how to do https://youtu.be/RqBb5eBf_I4

    • yybi123's avatar
      yybi123
      Helper I

      I am not too sure if this can be applied to my data. As I need to compare the value for each person by category against the total average of the category.

       

      I do not have a measure that calculated the average by category ignoring the name. Do you know any dax I can achieve that? Then with that I can probably use your method above to colour code by applying rules if personal value greater than average value then green/red. 

       

      Here is my data.

       

  • In Matrix, we have conditional formatting available. in Background control, you can click on advanced control and have following window to set your requirement

     

    Regards,

    Sayali

    If this post helps, then please consider Accept it as the solution to help others find it more quickly.