如何在Google Sheets中正确使用SPLIT函数拆分拼接分类文本?
在Google Sheets中从拼接文本提取分类数据的方法
需求说明
已知分类列表:Kleur、Soorthek、Bevestigingswijze,抓取到的拼接文本为:
BevestigingswijzeKlembevestigingKleurWitSoorthekSpijlenhek
需要将文本拆分为「分类+对应值」的独立条目:BevestigingswijzeKlembevestiging、KleurWit、SoorthekSpijlenhek。
实现步骤
由于原始文本没有明确分隔符,需要先通过正则添加分隔符,再用SPLIT拆分,具体公式如下:
公式1(硬编码分类)
=FILTER(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", "Kleur", "Soorthek", "Bevestigingswijze")&")", "|$1"), "|"), NOT(ISBLANK(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", "Kleur", "Soorthek", "Bevestigingswijze")&")", "|$1"), "|"))))
- 替换逻辑:
JOIN("|", ...)将分类列表拼接成正则匹配模式Kleur|Soorthek|Bevestigingswijze,REGEXREPLACE会在每个分类的开头插入|分隔符,把原始文本拆分成带分隔符的块 - 拆分过滤:
SPLIT按|拆分文本后,FILTER自动过滤掉开头的空值,只保留有效条目
公式2(引用分类区域,更灵活)
如果把分类列表放在B1:B3单元格(B1=Kleur,B2=Soorthek,B3=Bevestigingswijze),可以用动态引用的公式:
=FILTER(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", B1:B3)&")", "|$1"), "|"), NOT(ISBLANK(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", B1:B3)&")", "|$1"), "|"))))
效果说明
假设拼接文本存放在A1单元格,输入公式后,结果会自动按列拆分显示三个条目;如果需要按行显示,在公式外层套TRANSPOSE即可:
=TRANSPOSE(FILTER(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", B1:B3)&")", "|$1"), "|"), NOT(ISBLANK(SPLIT(REGEXREPLACE(A1, "("&JOIN("|", B1:B3)&")", "|$1"), "|")))))
内容的提问来源于stack exchange,提问作者Scraper2022
相关产品推荐
相关产品推荐

