合并列与分隔符','如果没有值,则不要渲染分隔符

时间:2016-12-08 11:56:32

标签: excel excel-formula excel-2010

我将数据合并到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

怎么做?

3 个答案:

答案 0 :(得分:4)

如果您使用的是Excel 2016,则可以使用TEXTJOIN功能与分隔符连接,该分隔符还允许您跳过空白单元格。

例如:

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

将返回:

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

答案 1 :(得分:2)

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

或者

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

如果需要组合多个单元格,上面的公式将太复杂而无法执行,因此,您可以使用以下用户定义函数来解决它。

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

  2. 点击插入&gt;单击模块,然后在模块窗口中粘贴以下宏。

  3. 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. 保存并关闭此代码窗口,返回工作表,然后输入以下公式:只需ex:= concatenatecells(A1:A5)

答案 2 :(得分:1)

=IF(COUNTA(B2:D2)=1,B2,IF(COUNTA(B2:D2)=2,B2&","&C2,B2&","&C2&","&D2))