行中的第一个非空值,其中行号是动态的

时间:2016-04-22 17:48:46

标签: excel-formula

我在Excel中有一个范围说A1:E5,现在这个列中有值,有些是null。我的问题是我会动态地给行函数赋值,对于那行函数应该给我第一个非空值?

         1      2      3
Row1            23
Row2                   67

当我给2时它应该返回67,当我给1它应该给23?

1 个答案:

答案 0 :(得分:0)

试试这个:

=INDEX($A$1:$E$5,H1,AGGREGATE(15,6,COLUMN($A$1:$E$5)/((ROW($A$1:$E$5)=H1)*($A$1:$E$5<>"")),1))

enter image description here

因此AGGREGATE()函数创建一个列号和错误数组。当行号与H2不匹配和/或单元格为空时,它将返回除以0的错误。

AGGREGATE函数15的第一部分告诉我们我们正在寻找小的。第二个,6,告诉它忽略错误,所以我们没有一个只有那些没有错误的列号的数组。在H2的情况下,它有一个{2,3,4,5}的数组,从中将最小值发送回索引函数。

索引功能有三个部分。第一个是Range。 H1是该范围的第二行,因此是H1。第三个是我们从聚合函数得到的列。在这种情况下,它将返回2,因为它是最小的。

因此,所选范围内第2行和第2列的值为23。