Google sheets 是否可以根据另一列中的对列表进行字符串替换?(将多个前后值对替换为一个范围)

Google sheets 是否可以根据另一列中的对列表进行字符串替换?(将多个前后值对替换为一个范围),google-sheets,google-sheets-formula,substitution,array-formulas,gs-vlookup,Google Sheets,Google Sheets Formula,Substitution,Array Formulas,Gs Vlookup,我在colA中有一个巨大的项目列表,并且希望用colC替换发现的所有子字符串的实例,为什么这不起作用 =arrayformula(substitute(A1:A, B1:B, C1:C)) colB和colC大小一样,而且很大。这实际上只是为了避免执行所有手动ctrl+h操作,或者使用冗长的嵌套substitute(substitute(…formula尝试以下操作: =ARRAYFORMULA(IFERROR(REGEXREPLACE(A2:A, "^"&TEXTJOIN("$|^"

我在colA中有一个巨大的项目列表,并且希望用colC替换发现的所有子字符串的实例,为什么这不起作用

=arrayformula(substitute(A1:A, B1:B, C1:C))
colB和colC大小一样,而且很大。这实际上只是为了避免执行所有手动ctrl+h操作,或者使用冗长的嵌套
substitute(substitute(…
formula

尝试以下操作:

=ARRAYFORMULA(IFERROR(REGEXREPLACE(A2:A, "^"&TEXTJOIN("$|^", 1, B2:B)&"$",
 VLOOKUP(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, B2:B)), B2:C, 2*
 SIGN(ROW(A2:A)), 0)&""), A2:A))

尝试以下方法:

=ARRAYFORMULA(IFERROR(REGEXREPLACE(A2:A, "^"&TEXTJOIN("$|^", 1, B2:B)&"$",
 VLOOKUP(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, B2:B)), B2:C, 2*
 SIGN(ROW(A2:A)), 0)&""), A2:A))

很抱歉,我无法将评论添加为noob,因此我将在此处发布

Player0提供了一个有趣的解决方案。我正在这里尝试,但不知怎么失败了。有人能解释一下这个公式是如何工作的吗


很抱歉,我无法将评论添加为noob,因此我将在此处发布

Player0提供了一个有趣的解决方案。我正在这里尝试,但不知怎么失败了。有人能解释一下这个公式是如何工作的吗


您能否将演示工作簿与示例输入链接起来,并显示您看到的输出与所需的输出?嗨,凯特,感谢您对这个问题的兴趣。Player0提供的示例非常理想,但您可以在那里看到我的评论,了解其中的不足。您能否将演示工作簿与示例输入链接起来,并显示您需要的输出你看到的是你想要的输出吗?嗨,凯特,谢谢你对这个问题的兴趣。Player0提供的示例非常理想,但是你可以看到我的评论,看看有什么不足。嗨,Player0,谢谢你的回答。这几乎和预期的一样,只是如果它完全匹配colB,它才取代colA,这样xxx就不会变成rrx,这正是我所希望的。此外,如果colA的大小过大或单元格中的内容非常长,我相信此方法将受到50000个字符数限制。要使
xxx
成为
rrx
请尝试:
=ARRAYFORMULA(IFERROR)(REGEXREPLACE)(A2:A,TEXTJOIN(|,1,B2:B),VLOOKUP(REGEXEXTRACT)(A2:A,TEXTJOIN(|),1,B2:B),B2:C,2*符号(行(A2:A)),0)和“”,A2:A))
Hi Player0,谢谢你的回答。这与预期的效果非常接近,只是如果完全匹配colB,它才会取代colA,这样xxx就不会变成rrx,这正是我所希望的。此外,如果colA的大小过大或单元格中的内容非常长,我相信这种方法将受到50000个字符的限制。要使
xxx
成为
rrx
请尝试:
=ARRAYFORMULA(IFERROR(REGEXREPLACE(A2:A,TEXTJOIN(|),1,B2:B),VLOOKUP(REGEXEXTRACT(A2:A,TEXTJOIN(|),1,B2:B)),B2:C,2*符号(行(A2:A)),0)和“”,A2:A))