这年头,如果用Excel的人还不知道LOOKUP函数,那就像是法国人不知道拿破仑,美国人不知道华盛顿,伊拉克人不知道萨达姆-侯赛因一样。LOOKUP函数应用广泛,灵活性强,可以说是“后宫粉黛三千人,三千宠爱在一身”,今天咱们就来说说这个函数的一些主要用法。
一、逆向查询。下面这个表中,A:C列是员工基础信息表,要在这个信息表中查询E51单元格中员工的部门,也就是咱们常说的逆向查询,就可以使用LOOKUP函数了。
F5单元格输入以下公式:
=LOOKUP(1,0/(B2:B10=E5),A2:A10)
得出的结果是“生产部”。
上面这个公式就是LOOKUP函数最典型用法。可以归纳为:
=LOOKUP(1,0/(条件),目标区域或数组)
其中,条件可以是多个逻辑判断相乘组成的多条件数组。
=LOOKUP(1,0/((条件1)*( 条件2)* ( 条件N)),目标区域或数组)
以0/(B2:B10=E5)构建一个0、#DIV/0!组成的数组,再用永远大于第2个参数中所有数值的1作为查找值,即可查找最后一个满足非空单元格条件的记录。
二、要查询A列中的最后一个文本,也非LOOKUP函数莫属,用到的公式是:
=LOOKUP(“々”,A:A )
“々”通常被看做是一个编码较大的字符,它的输入方法为<Alt+41385>组合键。如果感觉每次写这个符号有点费事儿,也可以写成:
=LOOKUP(“座”,A:A )
一般情况下,第一参数写成“座”也可以返回一列或一行中的最后一个文本。
三、要查询A列中的最后一个数值,用到的公式是:
=LOOKUP(9E307,A:A )
9E307被认为是接近Excel规范与限制允许键入最大数值的数,用它做查询值,可以返回一列或一行中的最后一个数值。
有朋友会说了,如果我A列中的数据既有文本也有数值,想得到最后一个单元格内容,那咋办?当然不能凉拌!哈哈^_^ ,写成这样就可以的:
=LOOKUP(1,0/(A:A<>””),A:A )
注意,上面这个公式中整列引用的写法在03版本中不适用,可以写成实际的单元格区域引用。
四、 根据简称查询全称的问题相信大家都会经常遇到吧?如下面这个图中所示,A列是客户的简称,要求根据E列的客户全称对照表,在C列写出客户的全称。
C2单元格输入以下公式,可得到 “上海沛发”的客户全称“上海沛发包装材料有限公司”。
=IFERROR(LOOKUP(1,0/FIND(A2,E$2:E$13),E$2:E$13),””)
公式中“0/FIND(A2,E$2:E$13)”部分,首先用FIND函数查询A2单元格“上海沛发”在E$2:E$13的起始位置,得到一个由错误值和数值组成的数组。
余下部分的计算过程就和咱们前面说过的一样了,使用IFERROR函数来屏蔽公式查询不到对应结果时返回的错误值。
除此之外,LOOKUP函数还被用于带有合并单元格的汇总计算,以及单元格中数值字段的提取等等,这些内容咱们留到以后慢慢再说。先把今天这些记住了、熟悉了,即使练不成降龙十八掌,那起码也是降龙十巴掌了。