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

问题描述 投票:1回答:2

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

enter image description here

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

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

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

这就是我得到的

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

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

excel vba
2个回答
2
投票

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

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

如果没有那么你将需要为每个回归使用IF和Mid:

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

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删除最后一个逗号,无论它出现在右括号“)”之前。

© www.soinside.com 2019 - 2024. All rights reserved.