Forum Discussion
Data Bar conditional formatting
- Anonymous1 year ago
Hi Agent47 ,
As danextian said, you need to check a measure first:
Again, you can continue to define the conditional format under each country, and here I've assigned three colors to [Total Profit] equals Maximum Minimum as well as Middle under Canada.
VAR RectColor = SWITCH ( SELECTEDVALUE ( 'financials'[Country] ), "Canada", VAR __vals = CALCULATETABLE ( ADDCOLUMNS ( SUMMARIZE ( 'financials', 'financials'[Country], 'financials'[Product] ), "@TotalProfit", [Total Profit] ), ALLSELECTED ( 'financials'[Product] ) ) VAR __minvalue = MINX ( __vals, [@TotalProfit] ) VAR __maxvalue = MAXX ( __vals, [@TotalProfit] ) VAR __color = SWITCH ( TRUE (), [Total Profit] = __maxvalue, "#06B050", [Total Profit] = __minvalue, "#D41F26", "#3b3a39" ) RETURN __color, "France", "Red", "Germany", "Yellow" )Best Regards,
Gao
Community Support TeamIf there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
Hi Agent47 ,
Try using SVG + DAX:
SVG_Total_Profit =
VAR MinValue =
MIN ( MINX ( ALLSELECTED ( 'financials'[Country],'financials'[Product] ), [Total Profit] ), 0 )
VAR MaxValue =
MAX ( MAXX ( ALLSELECTED ( 'financials'[Country], 'financials'[Product] ), [Total Profit] ), 0 )
VAR Gap_Value = MaxValue - MinValue
VAR X = 720 * [Total Profit] / Gap_Value
VAR TextValue = FORMAT([Total Profit], "#,##0.00")
VAR RectColor = SWITCH(SELECTEDVALUE('financials'[Country]), "Canada", "Green", "France", "Red", "Germany", "Yellow")
VAR StartX =
IF([Total Profit] >= 0, 0, 720 + X)
VAR Height = 150
VAR FontSize = 100
VAR TextXOffset = 10
VAR FontFamily = "Arial"
RETURN
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='720' height='" & Height & "'>
<rect x='" & StartX & "' y='0' width='" & ABS(X) & "' height='" & Height & "' fill='" & RectColor & "'/>
<text x='" & StartX + TextXOffset & "' y='50%' font-size='" & FontSize & "' text-anchor='start' dominant-baseline='central' fill='black' font-family='" & FontFamily & "'>" & TextValue & "</text>
</svg>"
Remember to categorize it as an image URL.
Best Regards,
Gao
Community Support Team
If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
- Agent471 year ago
Helper I
Hi Anonymous , what if I need just like 3 different colours for Canada , France , Germany ? No min , max , nothing . Also will I write it as a measure ? And I could not find the measure tools option in my power bi Version: 2.137.751.0 64-bit (October, 2024)
- danextian1 year ago
Super User
Measure tools is a contextual tab which appears when a measure is selected from the field pane. You will need to specify the min max/values to calculate the length of the bar. Unlike with the native databar option, this needs to be calculated when using SVG images. Also take note that exporting the data from the matrix will export the SVG markups and not the actual values.
- Anonymous1 year agoNot applicable
Hi Agent47 ,
As danextian said, you need to check a measure first:
Again, you can continue to define the conditional format under each country, and here I've assigned three colors to [Total Profit] equals Maximum Minimum as well as Middle under Canada.
VAR RectColor = SWITCH ( SELECTEDVALUE ( 'financials'[Country] ), "Canada", VAR __vals = CALCULATETABLE ( ADDCOLUMNS ( SUMMARIZE ( 'financials', 'financials'[Country], 'financials'[Product] ), "@TotalProfit", [Total Profit] ), ALLSELECTED ( 'financials'[Product] ) ) VAR __minvalue = MINX ( __vals, [@TotalProfit] ) VAR __maxvalue = MAXX ( __vals, [@TotalProfit] ) VAR __color = SWITCH ( TRUE (), [Total Profit] = __maxvalue, "#06B050", [Total Profit] = __minvalue, "#D41F26", "#3b3a39" ) RETURN __color, "France", "Red", "Germany", "Yellow" )Best Regards,
Gao
Community Support TeamIf there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!How to get your questions answered quickly -- How to provide sample data in the Power BI Forum