使用 Excel 按顺序将换行符替换为另一个字符串中的子字符串

Replace linebreak with substring from another string in sequence using Excel

我想用字符串 2 的子字符串替换字符串 1 上的换行符。替换顺序应基于字符串 2 上的换行符。 example/idea 应该是这样的:

字符串 1:

date1|date2|date3|date4|date5|

字符串 2:

sentence1|sentence2|sentence3|sentence4|sentence5|

预期结果:

date1sentence1date2sentence2date3sentence3date4sentence4date5sentence5

我使用的公式我知道是不完整的:

=SUBSTITUTE(A1,MID(A1,6,1),"?")

提前致谢....

如果您有权访问 CONCAT,则可以使用此数组形式:

=CONCAT(TRIM(MID(SUBSTITUTE(A1,"|",REPT(" ",999)),(ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1)-LEN(SUBSTITUTE(A1,"|",""))))-1)*999+1,999))&TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),(ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A2)-LEN(SUBSTITUTE(A2,"|",""))))-1)*999+1,999)))

数组公式需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。

如果有人也可以访问动态数组公式,那么他们可以使用:

=CONCAT(TRIM(MID(SUBSTITUTE(A1,"|",REPT(" ",999)),SEQUENCE(LEN(A2)-LEN(SUBSTITUTE(A2,"|","")),,1,999),999))&TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),SEQUENCE(LEN(A2)-LEN(SUBSTITUTE(A2,"|","")),,1,999),999)))

它不再需要 CSE 条目。


如果每个字符串总是 5 个项目,那么可以使用 SUBSTITUTE:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"|",TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),1,999)),1),"|",TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),999,999)),1),"|",TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),2000,999)),1),"|",TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),3000,999)),1),"|",TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",999)),4000,999)),1)

它要求每个项目使用一个嵌套的 SUBSTITUTE。