【问题标题】:Issue with concatenation with delimiter formula in ExcelExcel中与分隔符公式连接的问题
【发布时间】:2012-05-16 23:45:45
【问题描述】:

我正在尝试用分号分隔符连接其他每一列中的单元格。我拥有并且基本上有效的公式是:

=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)," ","; "))

但我遇到的问题是某些单元格包含带空格的文本,并且公式将分隔符放在合法空格的位置。我该如何纠正这个问题?

提前致谢!

【问题讨论】:

    标签: excel excel-2007 excel-formula vba


    【解决方案1】:

    您在空格字符上调用SUBSTITUTE,这些字符不仅是您的临时分隔符,而且是您连接字符串中的一种模式。

    肮脏而快速的解决方案是使用不会出现在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),"###","; "))
    

    【讨论】:

    • 谢谢!这就是我所做的。我对合法空格使用了管道分隔符,然后运行了公式。
    【解决方案2】:

    这行得通吗?

    =IF(COUNTA(H2,J2,L2,N2,P2,R2,T2,V2,X2,Z2),H2&";"&J2&";"&L2&";"&N2&";"&P2&";"&R2&";"&T2&";"&V2&";"&X2&";"&Z2,"")

    或者当你有空格时只显示一次分隔符也许试试这个版本

    =SUBSTITUTE(IF(H2="","",";"&H2)&IF(J2="","",";"&J2)&IF(L2="","",";"&L2)&IF(N2="","",";"&N2)&IF(P2="","",";"&P2)&IF(R2="","",";"&R2)&IF(T2="","",";"&T2)&IF(V2="","",";"&V2)&IF(X2="","",";"&X2)&IF(Z2="","",";"&Z2),";","",1)

    【讨论】:

    • 即使单元格是空白的,也会在其中留下额外的分隔符。
    • 好吧,我有点困惑,不接受的解决方案也这样做吗?我假设所有单元格都已填充或没有,不是吗?我修改了我的答案以显示一个版本,如果填充了某些单元格而不是其他单元格,则该版本将摆脱额外的分隔符
    • 是的,它确实做到了。我根据临时分隔符的调用接受了它。我更改了代码以查找并用管道替换所有空格,然后运行原始公式,然后运行另一个查找并用空格替换管道。你的第二个公式是我正在寻找的那个。谢谢!
    猜你喜欢
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多