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

如何用Excel函数提取Description列中的M50、P10类目标文本?

Excel提取指定格式文本的解决方案

方法1:FILTERXML+SUBSTITUTE+TEXTJOIN组合(兼容Excel 2013及以上)

假设目标文本在A2单元格,在B2输入以下公式(Excel 365/2021直接回车,旧版本需按Ctrl+Shift+Enter执行数组运算):

=TEXTJOIN(",",TRUE,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"-","</s><s>"),"_","</s><s>"),".","</s><s>")&"</s></t>","//s[starts-with(.,'M') or starts-with(.,'P') and number(substring(.,2))]"))

逻辑拆解:

  • 三次SUBSTITUTE将文本中的-、_、.替换为XML分隔标签,把原文本拆成独立的节点片段
  • FILTERXML通过XPath规则筛选:仅保留以M或P开头、且第二个字符起为数字的片段,自动剔除.0%这类无关后缀
  • TEXTJOIN将筛选出的结果用逗号拼接成最终字符串

方法2:Excel 365专属简化版(TEXTSPLIT+FILTER+TEXTJOIN)

如果使用Excel 365/2021,可采用更简洁的写法:

=TEXTJOIN(",",TRUE,FILTER(TEXTSPLIT(A2,{"-","_","."}),LEFT(TEXTSPLIT(A2,{"-","_","."}),1)={"M","P"}+ISNUMBER(--MID(TEXTSPLIT(A2,{"-","_","."}),2,99))))

逻辑拆解:

  • TEXTSPLIT直接用多个分隔符将文本拆分为数组
  • FILTER筛选数组中以M/P开头、后续为数字的元素
  • TEXTJOIN拼接筛选结果

补充:精准匹配固定格式(如MXX/PXX)

如果目标格式固定为M+数字或P+数字(无其他后缀),可调整FILTERXML的XPath规则实现精准提取:

=TEXTJOIN(",",TRUE,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"-","</s><s>"),"_","</s><s>"),".","</s><s>")&"</s></t>","//s[matches(.,'^M\d+$|^P\d+$')]"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:38:11