在Google Sheets中为清理后字符串插入通配符的方法咨询
嘿,这个需求完全可以在Google Sheets里轻松实现!我给你两种实用方案,一种是纯内置函数组合(不用额外设置,直接用),另一种是自定义函数(更简洁,适合大量数据复用):
方法一:纯内置函数组合(推荐,零额外配置)
假设你的原始文本在A1单元格,直接复制下面的公式就能得到你想要的结果:
=CONCATENATE("*", JOIN("*", SPLIT(LOWER(REGEXREPLACE(A1, "[^a-zA-Z]", "")), "")), "*")
我拆解下每一步的作用,方便你理解和调整:
LOWER(A1):把所有文本转成小写REGEXREPLACE(A1, "[^a-zA-Z]", ""):移除所有非字母字符(空格、破折号、标点这些全删),只保留a-z/A-Z的字母SPLIT(..., ""):把清理后的字符串拆成单个字符的数组JOIN("*", ...):用*把每个字符连接起来CONCATENATE("*", ..., "*"):在首尾各加一个*,凑成你要的最终格式
举个实际例子:输入「Swift - Recent Graduates」,经过上面的步骤会变成:
swiftrecentgraduates*
如果需要保留数字,只要把正则部分改成[^a-zA-Z0-9]就行,这样数字也会被保留下来。
方法二:自定义函数(更简洁,适合批量复用)
如果觉得上面的公式太长,或者需要反复使用,可以写个自定义函数:
- 打开你的Google Sheets,点击「扩展程序」→「Apps Script」
- 删除默认的代码,粘贴下面的脚本:
function WILDCARD_FORMAT(text) { if (!text) return ""; // 转小写 + 移除非字母字符 + 插入通配符 const cleanedText = text.toLowerCase().replace(/[^a-z]/g, ""); return "*" + cleanedText.split("").join("*") + "*"; }
- 保存脚本(随便起个名字,比如「WildcardFormatter」),回到表格里直接用
=WILDCARD_FORMAT(A1)就能调用啦。
两种方法都能完美实现你的需求,纯函数方案不用碰脚本,上手最快;自定义函数更简洁,适合频繁使用的场景~
内容的提问来源于stack exchange,提问作者user1543042
相关产品推荐
相关产品推荐

