依次替换(Excel函数集团)
问题:将以下考题中的空格替换为正确答案。
这个以前几乎不可能用函数解决的问题现在已经不是问题了。
=REDUCE(A2,TEXTSPLIT(B2, ";" ),LAMBDA(x,y,SUBSTITUTE(x, " " ,y,1)))
第一次运算:x指代A2,y指代TextSplit结果的第一个值,利用Substitute将x中第一个空格替换成y;
第二次运算:x指代第一个空格已填上答案的A2,y指代TextSplit结果的第二个值,利用Substitute将x中第一个(实际是A2中的第二个)空格替换成y
以此类推。
其实,Reduce并不是唯一解法:
=TEXTJOIN(TEXTSPLIT(B2,";")&")",,TEXTSPLIT(A2," )"))
两个TextSplit就是拆分,一个按分号拆分,另一个按空格和右括号拆分。
再把拆分掉的A2合并起来,以拆分出来的B2作为“分隔符”。
如果空格数量不确定,可以使用以下公式:
=SUBSTITUTE(TEXTJOIN(TEXTSPLIT(B2,";")&")",,TEXTSPLIT(A2,")"))," ",)
向首先想出这一思路的同学致敬!