SOLVED

JSON if statement for conditional formatting

New Contributor

I am new at JSON and would like some help on how to write an if statement for conditional formatting in a SharePoint list that will change a columns background (@currentField) color if the Position columns item is selected as Chief Cook, Cook, or Steward . =if([$Position] == 'Chief Cook or Cook or Steward', '#00afff', '')

 

The JSON below I found on the web works when only 'one' choice is entered. Is there a way to use a character to include the other 2 choices in the syntax?

 

 

{
"elmType": "div",
"txtContent": "@currentField",
"style": {
"background-color": "=if([$Position] == 'Cook', '#00afff', '')",
"color": "=if(@currentField >= @now - 94672800000 ,'green', (if(@currentField >= @now - 94672800000, '#ffa59b','red'))"
}
}

 

Any help would be appreciated.

5 Replies
best response confirmed by JTFInc (New Contributor)
Solution

@JTFInc you need to use || which stands for or (&& is and) as follows:

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
  "elmType": "div",
  "txtContent": "@currentField",
  "style": {
    "padding-left": "14px",
    "background-color": "=if([$Position] == 'Chief Cook' || [$Position] =='Cook' || [$Position] == 'Steward'  , '#00afff', '#d7dae1')",
    "color": "black"
  }
}

 

I've used this JSON to format the Contract column in the image below:

 

0-SP-list.png

 

Rob
Los Gallardos
Microsoft Power Automate Community Super User

Rob your a champion! That did the trick. I was playing with all kinds of operands and could not make it work. Thanks again for your help. Your awesome.
Regards
Jay

@RobElliott Hi. I attempted this but I got all the same color as my background.  Is this possible to use on a calculated column?

i have a column approver2 with the value of the name in it.
there is also a approver1.
if approver2 rejected, the name should be bold, if approver1 rejected name sould be normal.

is that possible?



thanks kuno

Thank you @RobElliott,

 

Elegant solution and easy to use

 

I have implemented it this way

"display": "=if(([$Column1] == 'Value1' || [$Column1] == 'Value2') && [$Column2] != 'Value3', 'display', 'none')"