如果值在特定范围内,则合并 Excel 单元格

如果值在特定范围内,则合并 Excel 单元格

如果其他单元格中的值符合某些条件,我尝试使用连接来合并某些单元格。最好的方法是什么?我一直在尝试连接 + if 语句,但无法弄清楚。

以下为示例:

例子

答案1

假设您的前六个单元格是 A1:C2,那么这样的公式会连接 A1:C1 中的匹配名称。

CONCATENATE(IF(AND(A2<1.3,A2>0),A1&", ",""),IF(AND(B2<1.3,B2>0),B1&", ",""),IF(AND(C2<1.3,C2>0),C1,""))

本质上,它的作用是询问(对于每个单元格 A2:C2)它们是否在指定范围内。

具体来说...如果 A2 满足两个条件,则返回单元格 A1,后跟逗号空格。如果不满足两个条件,则不返回任何内容。对每个单元格对都执行此操作。然后将所有三个结果连接起来。

IF(AND(A2<1.3,A2>0),A1&", ","")

但这会产生一个问题,因为最后一个匹配项后面也跟着逗号/空格。

为了至少部分解决此问题,您可以使用leftandlen函数排除最后两个字符。在这里,它获取结果文本的长度并返回除最后两个字符之外的所有内容。

LEFT(CONCATENATE(IF(AND(A2<1.3,A2>0),A1&", ",""),IF(AND(B2<1.3,B2>0),B1&", ",""),IF(AND(C2<1.3,C2>0),C1&", ","")),LEN(CONCATENATE(IF(AND(A2<1.3,A2>0),A1&", ",""),IF(AND(B2<1.3,B2>0),B1&", ",""),IF(AND(C2<1.3,C2>0),C1&", ","")))-2)

当然,如果您的数字都不在范围内,那么您将收到错误。这可能可以通过 if/iserror 组合来解决。

答案2

您可以添加一个辅助行,然后输入以下数组公式来显示值介于 0 和 1.3 之间。

=IFERROR(INDEX($A1:$C1,0,SMALL(IF(($A$2:$C$2<1.3)*($A$2:$C$2>0),COLUMN($A:$C),4^8),COLUMN(A$1))),"")

在此处输入图片描述

由于结果在第 7 行,因此我们可以使用公式=TEXTJOIN(",",TRUE,$7:$7)来获取最后的结果。

在此处输入图片描述

相关内容