我的列A充满了0到100之间的数字。如何获得底部元素的索引,但是大于0。
例如
6
7
9
1
0
8
0
在此示例中,返回的数字应为“6”,因为它是包含“8”的单元格的索引。
答案 0 :(得分:0)
您想使用MATCH()的数组形式:
=MATCH(1E+99,IF($A$1:$A$7<>0,$A$1:$A$7))
作为一个数组,当退出编辑模式而不是Enter时,需要使用Ctrl-Shift-Enter确认。如果正确完成,则会将{}
放在公式周围。
这将找到范围内不是0的最后一个数字。
如果您的列表不是静态的,列表会改变长度,那么您可以使用这个随着A列中的数据发生变化而增长和缩小的公式:
=MATCH(1E+99,IF($A$1:INDEX(A:A,MATCH(1E+99,A:A))<>0,$A$1:INDEX(A:A,MATCH(1E+99,A:A))))
它仍然是一个数组并且是一个数组,需要在退出编辑模式而不是Enter时使用Ctrl-Shift-Enter确认。如果正确完成,则会将{}
放在公式周围。
数组公式的计算是指数级的,因此我们希望将要测试的数据集的大小限制为范围。两个INDEX(A:A,MATCH(1E+99,A:A))
找到A列中的最后一个单元格,并将其设置为该范围内的最后一个单元格。