【问题标题】:Concatenating indeterminate number of cells ignoring blanks in Excel连接不确定数量的单元格忽略Excel中的空白
【发布时间】:2017-06-16 15:29:24
【问题描述】:

查看此页面上的示例https://www.extendoffice.com/documents/excel/3269-excel-concatenate-cells-if-not-empty.html(如下所示)。

如果最后一个条目为空,则此解决方案不起作用。例如,在 A 列中,如果 A5 中缺少“订单”,则结果将是“KTE-2015-Ruby-”而不是“KTE-2015-Ruby”。

如果没有一堆 if 语句检查该单元格是否是最后一个非空白单元格,我将如何获得第二个结果。

要了解更多信息,我将始终检查相同数量的信息行,但实际包含文本的行数是不确定的。再次以图片为例,我将始终只检查第 1-5 行,但我不知道哪些行是空白的。

【问题讨论】:

    标签: excel excel-formula textjoin


    【解决方案1】:

    如果您有 Office 365 Excel,则可以使用 TEXTJOIN():

    =TEXTJOIN("-",TRUE,A1:A5)
    

    如果没有,那么您需要添加到公式中以使用 LEFT() 删除最后一个字符

    =LEFT(A1 & "-" & IF(A2<>"",A2 & "-","") & IF(A3<>"",A3 & "-","") & IF(A4<>"",A4 & "-","") & IF(A5<>"",A5 & "-",""),LEN(A1 & "-" & IF(A2<>"",A2 & "-","") & IF(A3<>"",A3 & "-","") & IF(A4<>"",A4 & "-","") & IF(A5<>"",A5 & "-",""))-1)
    

    这个公式有点不同,因为它总是将- 添加到末尾。然后它用 Left 删除最后一个 -。那么无论是否为空白都没有关系,我们将始终在需要删除的末尾有-。


    或者正如@Jeeped 所说:

    =MID(IF(A1<>"","-" & A1,"") & IF(A2<>"","-" & A2,"") & IF(A3<>"","-" & A3,"") & IF(A4<>"","-" & A4,"") & IF(A5<>"","-" & A5,""),2, 999999)
    

    【讨论】:

    • 完美答案。我将不得不等待 7 分钟来标记它。
    • 在每个的 front 处添加分隔符然后用 MID(..., 2, 9999999) 将其全部包装起来会更容易吗?
    • @Jeeped 可能。
    【解决方案2】:

    由于要连接的可能字符串数量有限,如果您无权访问 TEXTJOIN,也可以使用 SUBSTITUTE 和 TRIM。

    =SUBSTITUTE(TRIM(A2&" "&B2&" "&C2), " ", "-")
    

    【讨论】:

      猜你喜欢
      • 2018-11-20
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 2011-04-19
      • 2021-02-17
      相关资源
      最近更新 更多