【问题标题】:Remove comma from concatenated string for last cell in Excel从 Excel 中最后一个单元格的连接字符串中删除逗号
【发布时间】:2019-01-18 05:07:18
【问题描述】:

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

我的 HTML 电子邮件的连接字符串如下

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

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

这就是我得到的

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

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

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

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

    如果不是,那么您将需要为每个返回和 Mid 使用 IF:

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

    【讨论】:

      【解决方案2】:

      不带IF的替代方案

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

      ="(" & 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 会删除最后一个逗号,无论它出现在右括号“)”之前的任何位置。

      【讨论】:

      • 非常感谢!欣赏它
      猜你喜欢
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 2015-11-04
      • 2021-11-11
      相关资源
      最近更新 更多