在Google表格中按首次出现顺序提取单词的唯一字母
Google表格按首次出现顺序提取单词中的唯一字母
核心需求实现
假设目标单词存放在单元格A1(例如TRILLION),要按字母首次出现的顺序提取唯一字母并横向拆分到相邻单元格,可通过以下两种方法实现:
方法1:正则替换+数组拆分(推荐)
直接用正则表达式去除重复的后续字母,再拆分到横向单元格:
=ARRAYFORMULA(MID(REGEXREPLACE(A1,"(.)(?=.*\1)",""),SEQUENCE(1,LEN(REGEXREPLACE(A1,"(.)(?=.*\1)",""))),1))
- 公式解析:
REGEXREPLACE(A1,"(.)(?=.*\1)",""):通过正向预查匹配后续出现的相同字符,将前面的重复字符替换为空,最终得到仅保留首次出现字母的字符串(如TRILLION处理后为TRILON)。LEN(...):计算去重后字符串的长度,用于生成位置序列。SEQUENCE(1, 长度):生成横向的连续整数序列,对应每个字母的位置。MID(..., 序列, 1):逐个提取对应位置的单个字母。ARRAYFORMULA:触发批量计算,将结果横向输出到多个单元格。
方法2:拆分+去重(适配UNIQUE逻辑)
若偏好使用UNIQUE函数,可先将字符串拆分为纵向数组,去重后再转横向:
=TRANSPOSE(UNIQUE(TRANSPOSE(SPLIT(REGEXREPLACE(A1,".","$0 ")," "))))
- 公式解析:
SPLIT(REGEXREPLACE(A1,".","$0 ")," "):将每个字母用空格分隔后拆分,得到纵向的单个字母数组。UNIQUE(...):对纵向数组去重,保留首次出现的字母顺序。TRANSPOSE(...):将去重后的纵向数组转为横向,输出到相邻单元格。
动态更新特性
上述两个公式均支持动态更新:只要A1单元格的单词修改,横向输出的唯一字母会自动同步更新,适合复制模板工作表重复使用。
内容的提问来源于stack exchange,提问作者Peter Hosey
相关产品推荐
相关产品推荐

