如何在Google Sheets中提取单元格各单词首字母并适配多种场景?
解决Google Sheets中提取多单词首字母的需求
嘿,我明白你想要实现的效果了——根据A1单元格的内容,提取每个单词的首字母,空单元格就返回空。之前的REGEXEXTRACT只能拿到第一个单词的首字母,确实满足不了多单词的情况,我给你一个完美适配需求的公式:
=IF(A1="", "", REGEXREPLACE(A1, "(.)\w*\s?", "$1"))
公式拆解说明:
IF(A1="", "", ...):先做空值判断,如果A1是空单元格,直接返回空内容,避免正则处理空值时出现不必要的结果。REGEXREPLACE(A1, "(.)\w*\s?", "$1"):这是核心逻辑:(.):捕获每个单词的第一个字符(也就是我们要保留的首字母)\w*:匹配首字母之后的所有字母(单词的剩余部分)\s?:匹配单词后面可能存在的空格(问号表示“可选”,适配最后一个单词没有空格的情况)$1:把每一段匹配到的内容替换成我们捕获的首字母,这样所有首字母就会自动拼接在一起
验证不同场景:
- 当A1是
Foo bar时,公式会把Foo替换成F,bar替换成b,最终输出Fb - 当A1是
Foo时,替换后直接得到F - 当A1为空时,公式返回空内容,完全符合你的需求
扩展小技巧(可选):
如果需要不管输入的大小写,输出都统一为大写首字母,可以套一个UPPER函数:
=IF(A1="", "", UPPER(REGEXREPLACE(A1, "(.)\w*\s?", "$1")))
内容的提问来源于stack exchange,提问作者Ralph Schipper
相关产品推荐
相关产品推荐

