SOLVED

JSON if statement for conditional formatting

Copper 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.

6 Replies
best response confirmed by JTFInc (Copper 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')"

 

Hi @RobElliott, hoping you can assist in a similar situation. 

 

I've got a Sharepoint list with folders and excel files that either have a response due date or do not. I want a column field to be visible only if the list entity is an excel file with a listed response due date.

 

The below JSON has successfully hidden the field for folders, but my second conditional to hide the field if the 'Responses Due' column is blank is not working.

 

sam77meyer_0-1701200831955.png

 

1 best response

Accepted Solutions
best response confirmed by JTFInc (Copper 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

View solution in original post