要查找|怎样提取最后一列非空单元格内容?

如图1,有多列数据,怎样提取最后一列非空单元格内容,比如,第2行最后一列非空单元格是B2,就把B2的内容提取出来,第5行最后一列非空单元格是A5,当行数很多的时候,一个个手工提取就非常慢,怎样快速提取呢?用函数Lookup轻松实现。
 要查找|怎样提取最后一列非空单元格内容?
文章图片
图1
在D列输入公式=LOOKUP(2,1/(A2:C2""),A2:C2)
我们先来看看lookup的基本语法,第1个参数lookup_value是要查找的值,第2个参数lookup_vector是在该数值值中查找,第3个参数result_vector返回该数组值中相对位置的值.如图2。如果是找不到要查找的,会从后向前查找到比它小的值,如果找不到,则返回错误值。
注意:
1、查找的区域必须按升序排列。
...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE
2、查找的区域可以有错误值,但在查找时会被忽略
 要查找|怎样提取最后一列非空单元格内容?
文章图片
图2
我们再来看这个公式分解:
1、以第2行公式为例,公式A2:C2"" ,返回的是数组true,true,false,
选中公式标红的部分按F9可以看到;
2、1/(true,true,false),得到数组(1,1,#DIV/0!)
选中公式中标红的部分按F9可以看到;
3、在数组(1,1,#DIV/0!)中查找比第一个参数2,查找不到2,返回比2小的值,错误值可以忽略,所以返回的是最后的1对应的B2单元格内容。
关于Lookup函数有些通用的公式返回对应的内容,汇总如下:
A1:A20存放着数字、文本、错误值等,下列公式将返回:
【 要查找|怎样提取最后一列非空单元格内容?】=LOOKUP(9E+307,A1:A20)返回数值
=LOOKUP(9E+307,A1:A20,ROW(A1:A20))返回数值对应的行号
=LOOKUP(2,1/(A1:A20""),A1:A20)返回非空单元格
=LOOKUP(2,1/(A1:A20""),ROW(A1:A20))返回非空单元格的行号
=LOOKUP(2,1/(A1:A200),A1:A20)返回非零单元格
=LOOKUP(2,1/(A1:A200),ROW(A1:A20))返回非零单元格的行号
=LOOKUP(2,1/(A1:A20="a"),A1:A20)返回指定文本单元格
=LOOKUP(2,1/(A1:A20="a"),ROW(A1:A20))返回指定文本单元格的行号
=LOOKUP(2,1/(1-ISBLANK(A1:A20)),A1:A20)返回非空单元格
=LOOKUP(2,1/(1-ISBLANK(A1:A20)),ROW(A1:A20))返回非空单元格的行号
=LOOKUP(2,1/((A1:A200)*ISNUMBER(A1:A20)),A1:A20)返回不为零非空单元格
=LOOKUP(2,1/((A1:A200)*ISNUMBER(A1:A20)),ROW(A1:A20))返回不为零非空单元格的行号
注1:为了确保公式通用,第1个参数始终比第2个大,所以上面的公式第一个参数都是2。
注2:9E+307表示Excel中最大的数值,我们在Excel中按F1,输入“规范与限制”,可以看到Excel 最大正数如图3:
 要查找|怎样提取最后一列非空单元格内容?
文章图片
图3
今天的分享到此结束,如果想看更多历史文章,请从菜单所有文章查看。


    推荐阅读