将列与分隔符合并,如果没有值,则不提供分隔符
我正在将数据合并到列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,"")...
要么
使用用户定义函数连接单元忽略或跳过空白
如果需要组合多个单元格,上述公式将会过于复杂,因此您可以使用以下用户定义函数来解决这个问题。
-
按住Excel中的Alt + F11键,并打开Microsoft Visual Basic for Applications窗口。
-
单击插入>模块,然后将以下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
- 保存并closures这个代码窗口,回到工作表,然后input这个公式:只是例如:= concatenatecells(A1:A5)
=IF(COUNTA(B2:D2)=1,B2,IF(COUNTA(B2:D2)=2,B2&","&C2,B2&","&C2&","&D2))