如何在Google Sheets中提取JSON数据里isPrimary为true的value值?
提取Google表格JSON中isPrimary为true的value值
方法一:用内置公式实现
假设JSON数据存在A1单元格,直接在目标单元格输入以下公式即可:
=INDEX(FILTER(JSONPARSE(A1), INDEX(JSONPARSE(A1),,2)=TRUE),1,1)
逻辑拆解:
JSONPARSE(A1):将单元格内的JSON文本解析为二维数组,第一列对应value,第二列对应isPrimaryFILTER(..., INDEX(...,2)=TRUE):筛选出第二列(isPrimary)为true的行INDEX(...,1,1):提取筛选结果中第一行第一列的value值
如果存在多个isPrimary为true的条目,这个公式仅返回第一个;若要返回所有符合条件的value,去掉外层的INDEX直接使用FILTER即可。
方法二:自定义脚本实现
如果公式无法满足复杂需求,可通过Google Apps Script写自定义函数:
- 打开Google表格,点击菜单栏「扩展程序」→「Apps脚本」
- 删除默认代码,粘贴以下脚本:
function getPrimaryValue(jsonText) { try { const data = JSON.parse(jsonText); // 匹配第一个isPrimary为true的条目 const primaryItem = data.find(item => item.isPrimary === true); // 有匹配结果返回对应value,无结果返回提示文本 return primaryItem ? primaryItem.value : "无主数据"; } catch (e) { // JSON解析失败时返回错误提示 return "解析错误"; } }
- 保存脚本(自定义项目名即可),返回表格
- 在目标单元格输入
=getPrimaryValue(A1)即可获取结果
这个脚本会自动处理解析错误场景,无匹配数据时也会给出明确提示。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

