Excel 函数连接并排除零

Excel 函数连接并排除零

我已连接提取多个单元格名称,然后提取这些单元格中的值。例如=Concatenate(“Dog:”&B4&”,”&”Cat:”&C4&”,”……)但当引用它时,如果 B4 为 0,那么我只希望它显示 Cat 的值。我该怎么做?

答案1

您可以扩展以下公式以包含任意数量的项目:
根据您的标签,这假设没有 Excel 版本限制

=TEXTJOIN(
    ",",
    TRUE,
    BYCOL(
        FILTER(VSTACK({"Dog:", "Cat:"}, B4:C4), B4:C4 <> 0),
        LAMBDA(arr, CONCAT(arr))
    )
)
  • 使用VSTACK创建一个 2 列 2 行的数组,其中包含动物名称和B4:C4
    • 请注意,如果需要,您可以在第 4 行添加更多动物名称和更大的范围
  • 过滤该数组以排除第二行中有零的任何列。
  • 对于过滤后的数组中的每一列,CONCAT两个单元格
  • 对于每个连接的单元格,TEXTJOIN使用comma分隔符

正如@BlindSpots 所建议的,使用类似方法的更紧凑的公式对于提出的问题似乎同样有效:

=TEXTJOIN(", ",,FILTER({"Dog: ","Cat: "} & B4:C4,B4:C4<>0))

在此处输入图片描述

在此处输入图片描述

答案2

您想if在此连接字符串中使用条件语句。

语法是:
IF(condition,value when true,value when false)

擅长

对于您正在做的事情,如果“Cat”的值在“C4”中,并且您希望该值显示为“B4”,如果“B4”为零,则:

=CONCAT("Dog:"&IF(B4=0,C4,B4)," Cat:"&C4)

因此,如果B4=0,那么我们打印 的值C4,如果它具有 以外的值0,我们打印B4

答案3

公式

仅连接"Dog:"&B4"Cat:"&C4 , 如果B4不是 0   * 看注释

=IF(B4<>0,"Dog:"&B4,"")&"Cat:"&C4

  *  Excel 会将空单元格解释为 0

解释

  1. 使用如果"Dog:"&B4 函数根据 中的值返回或空白字符串B4 。 
  2. 返回的值如果函数然后与 连接"Cat:"&C4 。
IF 函数
=IF(test,if_true,if_false) //  Syntax

=IF(B4=0,"","Dog:"&B4)     //  TEST: B4=0

=IF(B4<>0,"Dog:"&B4,"")    //  TEST: NOT(B4=0)

连接、连接和 

  1. 康卡特功能被取代连接在 Excel 2016 中。两者都是现在支持,以实现向后兼容。
  2. 康卡特连接以逗号分隔的值列表。
  3. 计算运算符  & (&符号)可用于连接而不是使用函数。

连接示例

=CONCAT("Dog","Cat","Bird")      // Function       

=CONCATENATE("Dog","Cat","Bird") // Function (deprecated)

="Dog"&"Cat"&"Bird"              // Operator

=CONCAT("Dog","Cat"&"Bird")      // Mixed

相关内容