Forum Discussion
Conditional Formatting: adding icon with field value option
Hi everyone,
I'm struggling to add custom icon in matrix with field value option.
I have created this measure expecting the icon appearing in the blue column but nothing happened.
What am I doing wrong?
The measure used is the following:
Test Date Gates Gantt =
Var svgStart = "data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'> <circle cx='50' cy='50' r='40' stroke='purple' stroke-width='4' fill='purple' />"
var svgFinish = "</svg>"
var res=
IF(SELECTEDVALUE('Tracker Gates Home'[Date Type])="Actual/Planned" && MAX('Tracker Gates Home'[Week])="202312",
svgStart & "<circle cx='50' cy='50' r='40' stroke='#5D6E5A' stroke-width='4' fill='#5D6E5A' />" & svgFinish)
return res
Thank you!
- Anonymous1 year ago
Hi planc7 ,
Thanks for amitchandak reply.
After making sure that your filters are not incorrect, you can check to see if the Data Category of your measure is set to the Image URL format, so that the SVG format you are referencing will be recognized correctly. The following pbix file is an example of using the SVG format.Best regards,
Albert HeIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly
6 Replies
- amitchandakSuper User
planc7 , you can use unichar item in a measure and use that in the display. you can color them with conditional formatting
https://exceleratorbi.com.au/conditional-formatting-using-icons-in-power-bi/
https://community.powerbi.com/t5/Desktop/FORMAT-icon-set-for-use-in-a-data-card/td-p/811692
https://exceleratorbi.com.au/dax-unichar-function-power-bi/You can also consider dynamic format string https://youtu.be/qHALucET7N8
- planc7Helper I
I've already tried replacing SVG code with Unichar character but nothing changed.
What i need to do is adding a vertical line in that matrix (without adding another field in the value section), and I was trying to reach this result thinking of some work around with icons.
The expected outcome should be the following:
a matrix gantt with a milestones (yes, I've already tried with custom visual gantt but they are not suitable for my use case)
- AnonymousNot applicable
Hi planc7 ,
Thanks for amitchandak reply.
After making sure that your filters are not incorrect, you can check to see if the Data Category of your measure is set to the Image URL format, so that the SVG format you are referencing will be recognized correctly. The following pbix file is an example of using the SVG format.Best regards,
Albert HeIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly
- planc7Helper I
Thank you!
It seems working!
However, I think I have some problem in the SVG Code.
I downloaded this code from SVG Viewer but I'm not able to show image in PowerBi.
<svg fill="#000000" width="800px" height="800px" viewBox="-6.5 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg"> <title>bar</title> <path d="M8.469-1.156h2.25v29.813h-2.25v-29.813z"></path> </svg>Is the following code right or am I doing something wrong?
Thank you again 🙂
SWITCH( TRUE(), SUM('Table'[Indicator]) >=0 && SUM('Table'[Indicator]) <=2 ,"data:image/svg+xml;utf8, <svg fill='#000000' width='800px' height='800px' viewBox='-6.5 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg'> <path d='M8.469-1.156h2.25v29.813h-2.25v-29.813z'></path></svg>" )- AnonymousNot applicable
Hi planc7 ,
You can try thisIcon 2 = SWITCH( TRUE(), SUM('Table'[Indicator]) >=0 && SUM('Table'[Indicator]) <=2 ,"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' version='1.1' > <path d='M8.469-1.156h2.25v29.813h-2.25v-29.813z'></path></svg>", SUM('Table'[Indicator]) > 2 && SUM('Table'[Indicator]) <=3,"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'> <circle cx='50' cy='50' r='30' stroke='yellow' stroke-width='4' fill='yellow' /> </svg>", SUM('Table'[Indicator]) > 3,"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'> <circle cx='50' cy='50' r='20' stroke='green' stroke-width='4' fill='green' /> </svg>" )Final output
Best regards,
Albert HeIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly