On my blog post Progress Bars with SharePoint Online Column Formatting I showed how the new Column Formatting functionality can help to show progress bars inside a list:
On this post, I received the following comment from Rick:
Progress is usually associated with completion (blue). What would it take to have the progress % be blue, and the background color of the bar (= 100%), associated from a separate column?
Your “status” (Red, Yellow, Green) could be different for various reasons not associated with the progress. So, if your progress is 50%, 1/2 the bar would be blue. If your “status” column (choice) is Red, the second 50% of the bar would be Red. Go to status column, change to yellow, then second 50% would be Yellow, and progress 50% is still blue.
I created a new list for this with a Choice column called “Risk” (values: Low, Medium, High), and a Number column called Progress. The final look with the new Column Formatting JSON applied looks as follows:
Updating the original JSON was easy. What I did was:
- Add a background colour to the main DIV that I already had available, and set the colour to red/amber/green depending on the value of the Risk column
- Update the background colour of the percentage SPAN to a static colour instead of a dynamic colour based on a value
Here’s the updated JSON:
{
"elmType":"div",
"style":{
"background-color":{
"operator":"?",
"operands":[
{
"operator":"==",
"operands":[
"[$Risk]",
"High"
]
},
"#ff1111",
{
"operator":"?",
"operands":[
{
"operator":"==",
"operands":[
"[$Risk]",
"Medium"
]
},
"#ffdd00",
"#00ff00"
]
}
]
},
"width":"100%"
},
"children":[
{
"elmType":"span",
"txtContent":{
"operator":"+",
"operands":[
{
"operator":"*",
"operands":[
"@currentField",
100
]
},
" %"
]
},
"style":{
"background-color":"#CCCCFF",
"width":{
"operator":"+",
"operands":[
{
"operator":"*",
"operands":[
"@currentField",
100
]
},
"%"
]
},
"text-align":"center"
}
}
]
}


Great tuning, but when I used it , the numbers are changing to be with fractions “Such as 14.000000000002%”
how can I make sure it is without decimals ??