学习Excel技术,关注微信公众号:
excelperfect
在《Excel公式技巧63:查找最后一行》中,我们使用LOOKUP函数的公式获取最后一个值或该值所在的行号。如果列表中的前面有空,那么如何获取第一个非空值呢?
如下图1所示的工作表,在数据列中存在一些空单元格,且在第一个值前面就存在空单元格。
图1
输入数组公式:
=INDEX(B3:B12,MATCH(FALSE,ISBLANK(B3:B12),0))
可以获取数据列中第一个非空单元格的值。
公式的关键在于:
MATCH(FALSE,ISBLANK(B3:B12),0)
ISBLANK函数判断区域内是否有空单元格,解析为:
MATCH(FALSE, {TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE},0)
MATCH函数在数组中查找第一个FALSE值的位置,即第一个非空单元格的位置,得到:
2
传递给INDEX函数,得到:
=INDEX(B3:B12,2)
结果为:
完美Excel
如果要获取第一个数字,则可以使用数组公式:
=INDEX(B3:B12,MATCH(TRUE,ISNUMBER(B3:B12),0))
其结果如下图2所示。
图2
小结:通过使用IS类函数巧妙地构造TRUE/FALSE值组成的数组,从而求出想要获取的值所在的位置。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。