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

如何从Excel的JSON列中提取对应ValueName的fig值至指定列

嘿,我来帮你搞定这个Excel里提取JSON字段的需求!针对你这种大型Excel文件,这里有两种实用方法,适配不同的Excel版本:

方法1:Excel 365/2021原生JSON函数(推荐,高效稳定)

如果你的Excel是365或2021版本,直接用原生函数就能搞定,不用写代码,处理大型文件也很顺畅。

假设你的JSON数据在A列,Type1对应的列是B列,Type2对应的列是C列:

  1. 在B2单元格输入公式:
    =XLOOKUP("Type1",TOCOL(JSONVALUE(A2),2)[@ValueName],TOCOL(JSONVALUE(A2),2)[@fig])
    
  2. 在C2单元格输入公式:
    =XLOOKUP("Type2",TOCOL(JSONVALUE(A2),2)[@ValueName],TOCOL(JSONVALUE(A2),2)[@fig])
    
  3. 选中B2和C2,下拉填充到所有行即可。

公式解释:

  • JSONVALUE(A2):把单元格里的JSON字符串转换成Excel可识别的对象
  • TOCOL(JSONVALUE(A2),2):把JSON对象里的所有子对象(也就是wrtieSeg和readSeg的内容)转成一列数组
  • XLOOKUP(...):匹配数组中ValueName为目标值(Type1/Type2)的项,返回对应的fig字段值
方法2:VBA宏(适配旧版Excel,灵活可控)

如果你的Excel版本比较旧(比如2019及以前),不支持原生JSON函数,那就用VBA宏来处理,批量提取效率也很高。

操作步骤:

  1. 按Alt + F11打开VBA编辑器
  2. 右键点击左侧的工作簿名称 → 插入 → 模块
  3. 把下面的代码粘贴到模块窗口里:
    Function GetFigFromJSON(jsonStr As String, targetType As String) As String
        ' 用JScript引擎解析JSON
        Dim sc As Object
        Set sc = CreateObject("MSScriptControl.ScriptControl")
        sc.Language = "JScript"
        
        ' 定义JS函数来提取目标fig值
        sc.AddCode "function extractFig(json, target) { " & _
                    "var obj = JSON.parse(json); " & _
                    "for(var key in obj) { " & _
                    "if(obj[key].ValueName === target) return obj[key].fig; " & _
                    "} return ''; }"
        
        ' 调用JS函数并返回结果
        GetFigFromJSON = sc.Run("extractFig", jsonStr, targetType)
    End Function
    
  4. 关闭VBA编辑器,回到Excel界面

使用宏函数:

  • 在B2单元格输入:=GetFigFromJSON(A2,"Type1")
  • 在C2单元格输入:=GetFigFromJSON(A2,"Type2")
  • 下拉填充到所有行即可

注意事项:

  • 如果你的JSON字符串有多余的空格或特殊字符,可以先用CLEAN函数预处理,比如=GetFigFromJSON(CLEAN(A2),"Type1")
  • 确保单元格里的JSON格式是正确的(引号配对、逗号分隔正确),不然会解析失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:14:34