Excel中带分隔符公式的连接问题

Excel中带分隔符公式的连接问题,excel,excel-2007,excel-formula,vba,Excel,Excel 2007,Excel Formula,Vba,我试图用分号分隔符连接其他列中的单元格。我的公式是,并且基本上是有效的: =IF(SUBSTITUTE(TRIM(H2&" "&J2&" "&L2&" "&N2&" "&P2&" "&R2&" "&T2&" "&V2&" "&X2&" "&Z2)," ","; ")="","",SUBSTITUTE(TRIM(H2&" "&J2&

我试图用分号分隔符连接其他列中的单元格。我的公式是,并且基本上是有效的:

=IF(SUBSTITUTE(TRIM(H2&" "&J2&" "&L2&" "&N2&" "&P2&" "&R2&" "&T2&" "&V2&" "&X2&" "&Z2)," ","; ")="","",SUBSTITUTE(TRIM(H2&" "&J2&" "&L2&" "&N2&" "&P2&" "&R2&" "&T2&" "&V2&" "&X2&" "&Z2)," ","; "))
但我遇到的问题是,一些单元格包含带空格的文本,公式将分隔符放在合法空格的位置。我如何纠正这个问题

提前谢谢

您正在对空格字符调用替换,这些字符不仅是临时分隔符,也是连接字符串中的一种模式

肮脏但快速的解决方案是使用临时分隔符模式,它不会出现在H2、L2、N2中。。。细胞。在这里,我拿起了,但任何其他模式会做的把戏

=IF(SUBSTITUTE(TRIM(H2&"###"&J2&"###"&L2&"###"&N2&"###"&P2&"###"&R2&"###"&T2&"###"&V2&"###"&X2&"###"&Z2),"###","; ")="","",SUBSTITUTE(TRIM(H2&"###"&J2&"###"&L2&"###"&N2&"###"&P2&"###"&R2&"###"&T2&"###"&V2&"###"&X2&"###"&Z2),"###","; "))
您正在对不仅是临时分隔符而且是连接字符串中的模式的空格字符调用替换

肮脏但快速的解决方案是使用临时分隔符模式,它不会出现在H2、L2、N2中。。。细胞。在这里,我拿起了,但任何其他模式会做的把戏

=IF(SUBSTITUTE(TRIM(H2&"###"&J2&"###"&L2&"###"&N2&"###"&P2&"###"&R2&"###"&T2&"###"&V2&"###"&X2&"###"&Z2),"###","; ")="","",SUBSTITUTE(TRIM(H2&"###"&J2&"###"&L2&"###"&N2&"###"&P2&"###"&R2&"###"&T2&"###"&V2&"###"&X2&"###"&Z2),"###","; "))
这样行吗

=IFCOUNTAH2,J2,L2,N2,P2,R2,T2,V2,X2,Z2,H2&&J2&&L2&&N2&&P2&&R2&&T2&&V2&&X2&&Z2

或者在有空格时只显示一次分隔符,请尝试此版本

=替换FH2=&H2&IFJ2=&J2&IFL2=&L2&IFN2=&N2&IFP2=&P2&IFR2=&R2&IFT2=&T2&IFV2=&V2&IFX2=&X2&IFZ2=&Z2,;,,这行吗

=IFCOUNTAH2,J2,L2,N2,P2,R2,T2,V2,X2,Z2,H2&&J2&&L2&&N2&&P2&&R2&&T2&&V2&&X2&&Z2

或者在有空格时只显示一次分隔符,请尝试此版本


=替换FH2=&H2&IFJ2=&J2&IFL2=&L2&IFN2=&N2&IFP2=&P2&IFR2=&R2&IFT2=&T2&IFV2=&V2&IFX2=&X2&IFZ2=&Z2,;,,1

谢谢!我就是这么做的。我对合法空格使用了管道分隔符,然后运行了公式。谢谢!我就是这么做的。我对合法空格使用了一个管道分隔符,然后运行了公式。即使单元格为空,也会在其中留下额外的分隔符。好吧,我有点困惑,接受的解决方案不也是这样吗?我假设要么所有的单元都被填充,要么没有,不是吗?我修改了我的答案,以显示一个版本,该版本将摆脱额外的分隔符,如果一些单元格填充,但其他单元格不填充,它会这样做。基于临时分隔符的调用,我接受了它。我更改了代码,用管道查找并替换所有空间,然后运行原始公式,然后用空间再次查找并替换管道。你的第二个配方就是我想要的。非常感谢。即使单元格为空,也会在其中留下额外的分隔符。好吧,我有点困惑,接受的解决方案不也是这样吗?我假设要么所有的单元都被填充,要么没有,不是吗?我修改了我的答案,以显示一个版本,该版本将摆脱额外的分隔符,如果一些单元格填充,但其他单元格不填充,它会这样做。基于临时分隔符的调用,我接受了它。我更改了代码,用管道查找并替换所有空间,然后运行原始公式,然后用空间再次查找并替换管道。你的第二个配方就是我想要的。非常感谢。