Lookup函数以及0/的用法

2019-03-04 11:05周威
电脑知识与技术 2019年34期
关键词:数组单元格用法

摘要:在使用Excel时查询是经常要用到的操作,与VLookup相比Lookup函数有很强大的查询功能。文章在介绍Lookup的常规用法的基础上通过实例详细介绍了“0/”的用法,以实现多种查询。

关键词:函数;Lookup;0/

中图分类号:TP391

文献标识码:A

文章编号:1009-3044(2019)34-0208-02

查找引用是Excel的基本功能之一,通常我们可以使用Vlookup来进行按列查找数据(或者用Hlookup按行查找)。Vlookup函數虽然强大,但是却不是效率最高的,其实还有一个与Vlookup相似的Lookup函数,以高效的运算速度被Excel函数爱好者所喜欢,而且Lookup函数在日常实际工作中特别是数组公式,内存数组中应用广泛。

1 Lookup函数的基本格式

1.1 Lookup函数的含义

把数(或者文本)与一行或一列的数据依次进行匹配,匹配成功后把对应的数值找出来。Lookup函数有向量型查找和数组型查找两种格式。

1.2 Lookup函数的语法格式

向量型查找:Lookup(lookup_value,lookup_vector。[result_vec-tor])

其中各参数的含义如下:

1) lookup_value为查找值,是必选项;可以是对单元格的引用、数字、文本、名称或逻辑值。

2) lookup_vector为查找区域,是必选项;只能是一行或一列;查找区域的值必须按升序排列,否则可能返回错误的结果;可以是对单元格引用、数字、文本、名称或逻辑值,文本不区分大小写。

3) [result_vector]为返回结果区域,是可选项(即可填可不填);只能是一行或一列,且与查找区域大小要相同;如果返回结果区域为一个单元格(如A2或A2:A2),则默认为行(即横向),相当于A2:B2。

数组型查找:Lookup(lookup_value,array)

其中各参数的含义如下:

1) lookup_value为在数组中的查找值,是必选项;可以是对单元格的引用、数字、文本、名称或逻辑值。

2) array为数组,是必选项;它是行和列中值的集合;数组的值必须按升序排列,否则会返回错误的结果;可以是对单元格的引用、数字、文本、名称或逻辑值,文本不区分大小写。

需要注意的是无论是向量形式还是数组形式,查找区域必须按升序排序,否则可能返回错误的结果;另外,当找不到值时,它们都返回小于或等于查找值的最大值。如果查找值小于查找区域的最小值(数组查找时查找值小于第一行或第一列的最小值),Lookup函数会返回值#N/A。

2 Lookup函数的常规使用

如图1所示,根据学号查找对应的数学成绩。向量型查找,在H2单元格中输入如下内容:“=LOOKUP(G2,A2:A11,E2:E11)”。其中G2是查找的值,也就是第一个学生的学号,A2:A1l是查找的范围,E2:E1I返回值的范围。

数组型查找,在H2单元格中输入:“=LOOKUP(G2,A2:E11)”。其中G2是查找的值,A2:E11是数组。

3 Lookup函数o,的用法

Lookup函数功能很强大,除了上面的基本用法外还有很多其他用法,比如逆向查找,多条件查找,区间查找,最后一个符合条件的查找等等。

例如,根据姓名和专业查找数学成绩。如图2所示,这是一个多条件查找。在12单元格中输入:“=Lookup(l,O/(B2:B11=G2)*(D2:D1I=H2),E2:EII)”,最后的查询结果为85。

那么在这个函数中为什么要用“0/”结构呢?其实这个结构广泛存在于Lookup公式中。首先我们看看(B2:B1I=G2)*(D2:D11=H2)运算后的结果是什么?我们都知道,在Excel公式中如果A和B的值相等,则“A=B”会返回结果为True,而True在参与算术运算时相当于是1。如果A和B的值相不等,则“A=B”会返回结果为False,而False在参与算术运算时相当于是0。所以(B2:B11=G2)的结果是由True和False构成的一组值,如果放在单元格中则就像图3中的G5:C14区域所示。同样,(D2:D11=H2)的结果也是由True和False构成的一组值,而两个相同个数的一组值相乘,True*True=l,True*False=0.False *False=0.最终的结果是由1和0组成的一组数,如图3中的15:114区域所示。

由图3可以看出相乘结果为1所在的行,正是符合两个查找条件的行,我们只要把这个l的位置找出来也就能得到其所对应的数学成绩了。Lookup函数是按二分法进行查找的,但是要能正确查找到这组值必须按升序排列的,而公式(B2:BIl=G2)*(D2:D11=H2)的结果并不是按升序排列的,不符合要求。于是有人想到用“0/”的方法。0/1的结果是0,而0/0的结果是个错误值“#DIV/O!”,所以我们将上面相乘结果的一组数除0,最后得到如单元格区域J5:J14所示的结果。Lookup函数还有一个关键特征,那就是查找时可以忽略错误值,这样一组数值忽略后只剩一个值,这时只需要使用任意一个大于等于0的值查找就可以了,本例中大于等于0的数是1,即“=Lookup(l,0/(B2:B11=G2)*(D2:DIl=H2),E2:ElI)”,所以“0/”的目的是将符合条件的变成0,其他的变成错误值“#DIV/O!”,利用Lookup函数查找时忽略错误值的特征找到符合条件的值。

根据以上原理我们可以知道,如果查找的条件不止两个而是多个,那么同样可以用这种方法,函数可以写成:=Lookup(l,0/《条件区域1=条件1)*(条件区域2=条件2)……*(条件区域n=条件n)),查询区域)。

4 结束语

相比于Vlookup函数Lookup函数具有很强大的功能。通过0,将查找范围变换为一组0和错误值,再利用函数在查找时可以忽略错误值的特征找到查询值,利用这种方法Lookup函数可以完成很多查询,比如,逆向查询、单条件和多条件查询,查询最后一次出现的数据等。

参考文献:

[1] ExceIHome.Excel函数与公式实战技巧精粹[M].北京:人民邮电出版社,2010.

[2]赛贝尔资讯.Excel函数应用500例[M].北京:清华大学出版社,2017.

【通联编辑:唐一东】

收稿日期:2019-08-15

作者简介:周威(1963-),男,江苏无锡人,本科,副教授,研究方向为计算机应用及教学。

猜你喜欢
数组单元格用法
JAVA稀疏矩阵算法
address的高级用法你知道吗?
JAVA玩转数学之二维数组排序
玩转方格
玩转方格
“作”与“做”的用法
浅谈Excel中常见统计个数函数的用法
特殊用法
Excel数组公式在林业多条件求和中的应用
寻找勾股数组的历程