标签:Excel公式练习
在列表中,有很多空单元格,想要找到第一个非空单元格,如何做?
下面图1是示例数据。当然,为了演示起见,我只是列举了少量数据,实际上这个列表可能会非常长。
图1
现在,我们需要获取这个列表中的第一个非空单元格,即单元格B6中的值。
如果你不使用公式,只想使用Excel操作的话,可以先选择整个列表(即单元格区域B3:B22),按下F5键,在“定位”对话框中单击“定位条件”按钮,在“定位条件”中选择“空值”,单击“确定”按钮,这样就选择了列表中所有的空单元格。然后,按“Ctrl+-”组合键,在弹出的“删除”对话框中选择“整行”,单击“确定”。
如果使用公式呢?也有多种实现方法。
公式1:使用VLOOKUP函数
=VLOOKUP("*",B3:B22,1,FALSE)
这里的“*”是一个通配符。当要求VLOOKUP查找“*”时,会返回包含任何内容的第一个单元格的值。
然而,这个公式只是适用于第一个非空单元格的值是文本数据的情形。如果第一个非空单元格的值不是文本数据,它会返回第一个文本数据单元格的内容。
如果第一个非空单元格包含是可能不是文本数据,那么就要使用下面的公式。
公式2:经典的INDEX/MATCH函数
下面的公式适用于非空单元格为任意数据的情形。
=INDEX(B3:B22,MATCH(FALSE,ISBLANK(B3:B22),0))
这是一个数组公式,输入完后要按Ctrl+Shift+Enter组合键。
公式的原理很简单:ISBLANK(B3:B22)返回一个包含TRUE/FALSE值的数组,其中TRUE值表明单元格为空,FALSE值表明单元格含有值。MATCH函数找到第一个含有值的单元格的位置,INDEX函数取出该单元格中的值。
公式3:INDEX/SMALL函数
使用SMALL函数找到第一个非空单元格所在行,然后INDEX函数取出其值:
=INDEX(B3:B22,SMALL(IF(NOT(ISBLANK(B3:B22)),ROW(B3:B22)),1)-2)
这是一个数组公式,输入完后要按Ctrl+Shift+Enter组合键。
找到第一个非空单元格,你还有其他公式吗?
你能找到第二个非空单元格吗?
怎样获取最后一个非空单元格?
欢迎留言分享。