【问题标题】:How to ignore blank cells while concatenating cells in Excel如何在 Excel 中连接单元格时忽略空白单元格
【发布时间】:2022-01-07 06:42:26
【问题描述】:

我正在尝试在一个单元格中连接多个单元格值,如下所示:

Column A  Column B  Column C  Column D  Column E  Column F
Blank     Text 1    Text 2    Blank     Text 3

我将值从 A 连接到 E

我的公式是

A1&CHAR(10)&B1&CHAR(10)&C1&CHAR(10)&D1&CHAR(10)&E1

我在 F 列中得到的是

Blank
Text 1
Text 2
Blank
Text 3

我要找的是

Text 1
Text 2
Text 3

谁能帮我找出正确的公式?

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

    我只是在努力解决由 CONCATENATE() 在空白单元格上出错引起的类似问题。相反,您可以使用 TEXTJOIN([delimeter],[ignore blanks],[text1], [text2]...)

    喜欢:

    =TEXTJOIN(CHAR(10),TRUE,A1:E1)
    

    【讨论】:

      【解决方案2】:

      您需要包含一个条件来检查单元格是否有值或为空。 If the cell is empty (via ISBLANK()),则什么也不返回;否则,返回单元格的值加上回车。

      IF(ISBLANK(A3),"",A3&CHAR(10))
      

      因此,对于您的五列公式(为便于阅读添加了换行符):

      CONCATENATE(
        IF(ISBLANK(A1),"",A1&CHAR(10)),
        IF(ISBLANK(B1),"",B1&CHAR(10)),
        IF(ISBLANK(C1),"",C1&CHAR(10)),
        IF(ISBLANK(D1),"",D1&CHAR(10)),
        IF(ISBLANK(E1),"",E1)
      )
      

      【讨论】:

        【解决方案3】:
        =TEXTJOIN(",",TRUE,A1:E1)
        

        Excel 2019 和 Office 365 版本中的新 TEXTJOIN function 可以在没有所有 IF 语句的情况下更轻松地完成此任务。

        TEXTJOIN 函数将来自多个范围的文本和/或 字符串,并包括您在每个文本值之间指定的分隔符 那将被合并。如果分隔符是空文本字符串,则此 函数将有效地连接范围。

        特别是关于忽略空格的原始问题,将ignore_empty 参数设置为TRUE 将自动忽略空格。

        CHAR(10) 技巧 Erica suggested 但不适用于 TEXTJOIN。公式=TEXTJOIN(",",TRUE,A1:E1) 产生Text 1,Text 2,Text 3,这需要一个额外的步骤才能堆叠成一列。只需复制结果,然后将其粘贴为值,然后复制值,然后使用转置选项粘贴。

        【讨论】:

          【解决方案4】:

          如果数据集中的任何单元格包含多个单词(例如 New York),以下公式将很有用:

          = CONCATENATE(
                 IF(COUNTBLANK(B2)=1,"",B2&CHAR(10)&","),
                 IF(COUNTBLANK(C2)=1,"",C2&CHAR(10)&","),
                 IF(COUNTBLANK(D2)=1,"",D2&CHAR(10)&","),
                 IF(COUNTBLANK(E2)=1,"",E2&CHAR(10)&","),
                 IF(COUNTBLANK(F2)=1,"",F2&CHAR(10))
          )  
          

          请注意,我在公式中使用了COUNTBLANK() 参数,因为与ISBLANK() 不同,COUNTBLANK() 将空格(即 )视为空并返回 1。通过应用公式,以空格分隔的单词在每个单元格中不再使用逗号分隔。

          【讨论】:

            【解决方案5】:

            另一种选择:空单元格将导致连续两个换行符。在您的公式周围包裹一个替代品以删除它们。这样做两次以处理所有可能发生的情况。

            =SUBSTITUTE(SUBSTITUTE(A1&CHAR(10)&B1&CHAR(10)&C1&CHAR(10)&D1&CHAR(10)&E1&CHAR(10)&F1,CHAR(10)&CHAR(10),CHAR(10)),CHAR(10)&CHAR(10),CHAR(10))
            

            【讨论】:

              【解决方案6】:
              = CONCATENATE(
                     IF(COUNTBLANK(I2)=1,"",I2&CHAR(10)),
                     IF(COUNTBLANK(J2)=1,"",","&J2&CHAR(10)),
                     IF(COUNTBLANK(K2)=1,"",","&K2&CHAR(10)),
                     IF(COUNTBLANK(L2)=1,"",","&L2&CHAR(10)),
                     IF(COUNTBLANK(M2)=1,"",","&M2&CHAR(10)),
              )
              

              【讨论】:

                【解决方案7】:

                如果您订阅了 Office 365,则可以使用 TEXTJOIN() 函数轻松完成。下面的示例。使用的公式是:

                =TEXTJOIN(",",TRUE,B1,C1,D1,E1,F1)
                

                第一个参数是Delimiter(在本例中为,

                第二个参数是“ignore_empty_set”——TRUEFALSE(在这种情况下,我已将其设置为TRUE

                其余参数是您要加入的单元格列表。

                【讨论】:

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