You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于另一列的值对Choice列进行条件JSON格式化

问题修正:基于另一列值设置Choice列的显示逻辑

你的需求是当Location列包含Hawaii时,为当前Choice列设置对应显示内容或样式,但提供的JSON代码存在语法和逻辑错误,以下是修正方案:

原代码的问题

  • toLowerCase函数参数错误:正确用法是toLowerCase([$Location]),你把目标字符串和搜索值都放在了函数参数里,导致语法错误
  • indexOf的逻辑判断括号不匹配:条件部分的括号嵌套错误,无法正确执行判断
  • if函数结构不完整:SharePoint列格式化的if语法为if(条件, 满足时的值, 不满足时的值),原代码写法不符合规范

修正后的代码示例

如果你希望当Location列包含Hawaii(不区分大小写)时,当前Choice列显示为Deliver,否则显示原字段值,可使用以下代码:

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "div",
  "txtContent": "=if(indexOf(toLowerCase([$Location]), 'hawaii') != -1, 'Deliver', @currentField)",
  "attributes": {
    "class": "=if(indexOf(toLowerCase([$Location]), 'hawaii') != -1, 'ms-fontWeight-bold', '')"
  }
}

代码说明

  • toLowerCase([$Location]):将Location列的值转为小写,实现不区分大小写的匹配
  • indexOf(..., 'hawaii') != -1:判断转换后的字符串是否包含目标值
  • txtContent部分:满足条件时显示指定内容Deliver,否则显示原Choice列的选中值
  • attributes.class部分:可选设置,满足条件时给文本添加加粗样式,增强视觉区分

如果你的需求是在编辑时自动设置Choice列的默认值,列格式化无法实现该功能,需要通过Power Automate流或自定义列表逻辑来完成。

内容的提问来源于stack exchange,提问作者Hans Kristensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:35:23