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

如何在Google Sheets中无需GAS自定义函数,用单个公式移除指定字符串中各字符的首次出现

单个公式实现字符移除方案

当然有可行的方案!咱们完全可以用Google Sheets自带的函数组合搞定这个需求,不需要依赖自定义函数,一个公式就能解决。

实现公式

假设原字符串放在单元格A1,要移除的字符集合字符串放在B1(比如B1内容是WOLFMAN),可以用下面这个公式:

=REDUCE(A1,SPLIT(B1,""),LAMBDA(acc,char,REGEXREPLACE(acc,"^([^"&char&"]*)"&char,"$1")))

如果直接写死原字符串和要移除的字符串,就是:

=REDUCE("SOFTMAAWCKOVENRFLLOW",SPLIT("WOLFMAN",""),LAMBDA(acc,char,REGEXREPLACE(acc,"^([^"&char&"]*)"&char,"$1")))

公式原理拆解

咱们一步步来理解这个公式的工作逻辑:

  • SPLIT(B1,""):把要移除的字符串(比如WOLFMAN)拆分成单个字符的数组,也就是["W","O","L","F","M","A","N"],这样就能逐个处理每个需要移除的字符。
  • REDUCE(初始值, 处理数组, 迭代函数):这是核心的迭代工具,从初始的原字符串开始,依次用每个字符去更新结果:
    • acc代表每次迭代后累积的字符串结果
    • char代表当前要处理的单个字符
  • REGEXREPLACE(acc,"^([^"&char&"]*)"&char,"$1"):这一步负责移除当前字符的首次出现:
    • 正则表达式^([^"&char&"]*)"&char的意思是:从字符串开头开始,先匹配任意多个不是当前字符的内容(把这部分放到捕获组$1里),然后匹配第一个出现的当前字符。
    • 替换成$1就相当于把第一个出现的当前字符删掉,保留前面的所有内容。

验证效果

用你的例子测试:

  • 原字符串:SOFTMAAWCKOVENRFLLOW
  • 要移除的字符:WOLFMAN的每个字符首次出现
  • 经过公式迭代处理后,最终会得到目标字符串:STACKOVERFLOW

内容的提问来源于stack exchange,提问作者Matan Arie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:22:38