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

Excel公式需求:提取单元格中类字典结构的键名称

Excel提取字典式字符串键名并拼接的解决方案

问题场景

C1单元格内容:['abc': 'v1','cde':'v2'],期望D1输出:abc,cde
C2单元格内容:['abc': 'v1','cde':'v2','efg':'v3'],期望D2输出:abc,cde,efg

有效解决方案

适用于Excel 365/2021(支持TEXTJOIN和FILTERXML)

直接在D1输入以下公式,下拉填充即可:

=TEXTJOIN(",",TRUE,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C1,"['",""),"']",""),":","</s><s>"),"','","</s><s>")&"</s></t>","//s[position() mod 2 = 1]"))

公式逻辑:

  1. 多层SUBSTITUTE将原字符串转换为XML格式,把每个键和值拆分为独立节点
  2. FILTERXML提取所有奇数位置的节点(对应冒号前的键名)
  3. TEXTJOIN将提取到的键名用逗号拼接成最终结果

适用于旧版Excel(无TEXTJOIN/FILTERXML)

使用嵌套替换处理,D1公式:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C1,"['",""),"']",""),"': '",""),"':'","")

注:如果值部分包含特殊字符,可能需要微调替换规则,确保只清除键名后的':'xxx'部分。

原公式问题说明

你之前用的=LEFT(C1,FIND(",",C1)-1)仅能提取第一个逗号前的文本,但原字符串中第一个逗号位于v1'之后,因此得到的是['abc':'v1,无法实现提取键名的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:25:20