Pla*_*Hsu 3 excel excel-formula
我期待的功能
some_function(original_text, "search_text", "replacement_text")
Run Code Online (Sandbox Code Playgroud)
第二个和第三个参数的值将是多个字符。例如。结果将根据第二个和第三个参数处的字符位置替换字符
some_function("9528", "1234567890", "abcdefghij")
1 -> a
2 -> b
3 -> c
...
8 -> h
9 -> i
0 -> j
Run Code Online (Sandbox Code Playgroud)
的结果some_function将是iebh. 嵌套SUBSTITUTE函数可以实现目标,但我希望压缩复杂性。
REDUCE()您描述需求的方式最好通过lambda 相关的辅助函数编写,并且最近宣布投入生产:
=REDUCE("9528",SEQUENCE(10),LAMBDA(x,y,SUBSTITUTE(x,MID("1234567890",y,1),MID("abcdefghij",y,1))))
Run Code Online (Sandbox Code Playgroud)
不用说,当与单元格引用一起使用时,这会变得更加生动:
公式为A3:
=REDUCE(A1,SEQUENCE(LEN(B1)),LAMBDA(x,y,SUBSTITUTE(x,MID(B1,y,1),MID(C1,y,1))))
Run Code Online (Sandbox Code Playgroud)
另一种更复杂的方式可能是:
=LET(A,9528,B,1234567890,C,"abcdefghij",D,MID(A,SEQUENCE(LEN(A)),1),CONCAT(IFERROR(MID(C,FIND(D,B),1),D)))
Run Code Online (Sandbox Code Playgroud)
或者,根据上面的截图:
=LET(A,A1,B,B1,C,C1,D,MID(A,SEQUENCE(LEN(A)),1),CONCAT(IFERROR(MID(C,FIND(D,B),1),D)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3863 次 |
| 最近记录: |