将列与分隔符合并,如果没有值,则不提供分隔符

我正在将数据合并到列A中,如下所示:

= B2& “ ”&C2&“,” &D2

A | B | C | D ES,, ES DE,NL,IT DE NL IT CH,, CH CH,, CH DE,BE,AT DE BE AT FR,BE, FR BE CH,SG, CH SG AT,CH,ES AT CH ES 

然而,如果一列中没有任何价值,它就会增加额外的,我不想要的。 所以结果应该是这样的

 A | B | C | D ES ES DE,NL,IT DE NL IT CH CH CH CH DE,BE,AT DE BE AT FR,BE FR BE CH,SG CH SG AT,CH,ES AT CH ES 

怎么做?

如果您使用的是Excel 2016,则可以使用TEXTJOIN函数与分隔符连接,这也可以跳过空白单元格。

例如:

 =TEXTJOIN(",",TRUE,B2:D2) 

将返回:

 A | B | C | D ES ES DE,NL,IT DE NL IT 

使用此公式=B2&IF(C2<>"",","&C2,"")&IF(D2<>"",","&D2,"")...

要么

使用用户定义函数连接单元忽略或跳过空白

如果需要组合多个单元格,上述公式将会过于复杂,因此您可以使用以下用户定义函数来解决这个问题。

  1. 按住Excel中的Alt + F11键,并打开Microsoft Visual Basic for Applications窗口。

  2. 单击插入>模块,然后将以下macros粘贴到模块窗口中。

VBA代码:连接单元忽略空白:

 Function Concatenatecells(ConcatArea As Range) As String 'updateby Extendoffice 20151103 For Each n In ConcatArea: nn = IIf(n = "", nn & "", nn & n & "/"): Next Concatenatecells = Left(nn, Len(nn) - 1) End Function 
  1. 保存并closures这个代码窗口,回到工作表,然后input这个公式:只是例如:= concatenatecells(A1:A5)
 =IF(COUNTA(B2:D2)=1,B2,IF(COUNTA(B2:D2)=2,B2&","&C2,B2&","&C2&","&D2))