我已连接提取多个单元格名称,然后提取这些单元格中的值。例如=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
答案3
公式
仅连接"Dog:"&B4
和"Cat:"&C4
, 如果B4
不是 0
* 看注释
=IF(B4<>0,"Dog:"&B4,"")&"Cat:"&C4
* Excel 会将空单元格解释为 0
解释
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)
连接、连接和
连接示例
=CONCAT("Dog","Cat","Bird") // Function
=CONCATENATE("Dog","Cat","Bird") // Function (deprecated)
="Dog"&"Cat"&"Bird" // Operator
=CONCAT("Dog","Cat"&"Bird") // Mixed