Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Excel将linebreak替换为序列中另一个字符串的子字符串_Excel_Substitution - Fatal编程技术网

使用Excel将linebreak替换为序列中另一个字符串的子字符串

使用Excel将linebreak替换为序列中另一个字符串的子字符串,excel,substitution,Excel,Substitution,我想用字符串2的子字符串替换字符串1上的换行符。替换顺序应基于字符串2上的换行符。 示例/想法应如下所示: 字符串1: date1|date2|date3|date4|date5| 字符串2: sentence1|sentence2|sentence3|sentence4|sentence5| 预期结果: date1sentence1date2sentence2date3sentence3date4sentence4date5sentence5 我知道我使用的公式不完整: =SUBSTIT

我想用字符串2的子字符串替换字符串1上的换行符。替换顺序应基于字符串2上的换行符。 示例/想法应如下所示:

字符串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(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)

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

除非有固定的中断次数,否则替换项不会执行此操作。每一个换行符都需要一个替代品。你有TEXTJOIN吗?@ScottCraner抱歉,我不太清楚你的意思,因为我对Excel公式有点陌生。我没有使用TEXTJOIN。只要有效,任何公式都可以。日期的数量应与句子的数量相匹配,并用换行符分隔(w/c i用作标记以了解顺序)。这是从CRM导出的CSV文件。我只是想把日期和它对应的句子合并起来。谢谢。问题是,“总是有5个日期和句子吗?”如果可以变化,就不能单独使用替代。不,有时是3个日期和3个句子,或者8个日期和8个句子。它通常是相配的。这是我知道你的公式有效的实际屏幕截图,但我不知道是Excel版本还是我用错误的方式编辑了你的公式。这是我编辑过的版本:
=CONCATENATE(TRIM(MID)(替换(A1,MID(A1,23,1),REPT(“,999)),(ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1),LEN(A1,MID(A1,23,1),)-LEN(替换(A1,MID(A1,23,1),))-1)*+1999)和TRIM(替换(B1,MID(A1,MID(A1,23,1),REPT(“,999)),(ROW($ZZ1:INDEX($ZZ,LEN
但是结果只是一个1行而不是
串联
它应该是
CONCAT
如果你没有
CONCAT
,那么你需要vba来做这件事。非常感谢,你是救世主。请问我可以使用这个公式的最起码的Excel版本是什么?其他选择,比如谷歌表单?谢天谢地,阿加尼特似乎在谷歌工作,但最后少了一行句子。这是因为测试数据在字符串的末尾也显示了
|
。如果情况并非如此,则需要在
LEN(A1)-LEN(替换(A1,“|”,”)
之后添加
+1