从串联字符串中删除Excel中最后一个单元格的逗号

时间:2019-01-17 15:17:39

标签: excel vba

我在Excel中有一个表,该表有10列。对于每一行,例如,填充了不同数量的单元格。

enter image description here

对于HTML电子邮件,我的串联字符串如下

(“ + Machine1 +”,“ + Machine2 +”,“ + Machine3 +”,“ + Machine4 +”,“ + Machine5 +”,“ + Machine6 +”)

但是我希望逗号不显示在行的最后一个单元格之后(无论是第3、4、5、6列)。

这就是我得到的

((TEST1,TEST2,TEST3,TEST4,TEST5,...)

我想最后删除两个逗号。希望这有道理!

2 个答案:

答案 0 :(得分:2)

如果您具有Office 365 Excel,则使用TEXTJOIN:

="(" & TEXTJOIN(", ",TRUE,A2:F2) & ")"

否则,您将需要为每个收益和中值使用IF:

=MID("(" & IF(A2 <> "",", " & A2,"") & IF(A2 <> "",", " & B2,"") & IF(C2 <> "",", " & C2,"") & IF(D2 <> "",", " & D2,"") & IF(E2 <> "",", " & E2,"") & IF(F2 <> "",", " & F2,""),3,999)

答案 1 :(得分:1)

不带IF

的替代项

除了Scott的有效解决方案之外,我还通过REPT函数演示了一种方法。应用于包含字符串的单元格,它会一次“重复”其内容和逗号(由COUNTA()等于1表示),而空单元格会导致零重复,它不仅可以省略单元格内容,而且还可以省略逗号:

="(" & SUBSTITUTE(REPT(A1&",",COUNTA(A1))&REPT(B1&",",COUNTA(B1))&REPT(C1&",",COUNTA(C1))&REPT(D1&",",COUNTA(D1))&REPT(E1&",",COUNTA(E1))&REPT(F1&",",COUNTA(F1))&"$",",$",")")

简单的SUBSTITUTE会删除最后一个逗号,无论该逗号出现在右括号“)”之前。