上篇文章分享了日期和时间函数,这篇介绍查找引用函数。在数据量非常少的时候 ,可能并不需要使用查找引用函数,但是数据量一大,你就能感受到查找引用函数有多重要。接下来跟着小鱼一起来学习查找引用函数吧!
知识点:
- column columns row rows match vllookup hlookup lookup
- index indirect offset
一、查找函数
1.column函数、columns函数
语法:column(区域)、columns(数组或区域)
作用:column函数——返回一个引用的列号
columns函数——返回某一引用或数组的列数
示例:

2.row函数、rows函数
语法:row(区域)、rows(数组或区域)
作用:row函数——返回一个引用的行号
rows函数——返回某一引用或数组的行数
示例:

3.match函数
语法:match(查找值,查找区域或数组,[配备类型])
作用:返回查找值在查找区域或数组的相对位置
示例:

解读:公式的第三个参数用中括号表示该参数为选填项,有两种匹配类型可选。第一种是0(FALSE),代表精确匹配;第二种是1(TRUE),代表近似匹配。如果不填写第三参数,默认为0(精确匹配)。
4.vlookup函数
语法:vlookup(查找值,查找区域,区域内第几列,[匹配类型])
作用:根据首列满足查找值的行序号,返回在区域内对应列数的值
示例:

5.hlookup函数
语法:vlookup(查找值,查找区域,区域内第几行,[匹配类型])
作用:根据首列满足查找值的列序号,返回在区域内对应行数的值
示例:

6.lookup函数
(1)向量形式
语法:lookup(查找值,查找区域,[结果区域])
作用:从单行/列中查找一个值
示例:

解读:公式的第三个参数用中括号表示该参数为选填项。需要注意的是,查找区域和结果区域的范围应该相等。
仔细的朋友应该有注意到,前四位小陈、小林、小罗、小张的班级查询结果都是对的,第五位小汤显示班级为三班,但依照数据来看,其实应该是五班才对。那么是哪里出现错误了?
出错的原因在于lookup函数的折半查找算法。折半算法为:将数据按从小到大排好顺序,取中间位置的数与查找值对比。如果中位数>查找值,在前半段进行第二次折半查找,否则在后半段进行第二次查找,直到找到匹配的值。如果匹配不到查找值,则返回小于或等于查找值的最大值。如果查找值比查找区域的最小值还小,那么会返回#N/A错误。
所以示例出错的原因在于查找区域没有排序。其实不止数值,文本也有排序。文本的排序依据为文本的拼音a~z按位置代表1~26排序。对上述示例修改如下:

所以,要使用到lookup函数,一定要先对查找区域进行排序,不然就会出错了!
(2)数组形式
语法:lookup(查找值,数组)
作用:从数组中查找一个值
示例:

解读:lookup函数数组形式中,查找值应位于第二参数数组区域的第一行/列。如果数组区域行数>列数,返回符合查找值所在行对应最后一列的值;如果行数<列数,返回符合查找值所在列对应最后一行的值。
总结使用lookup函数要注意的点:
- 查找区域(数组形式中,为查找区域的第一行/列)要排序!
- 如果查找值<查找区域(数组形式中,为查找区域的第一行/列)最小的值,返回#N/A;
- 如果没有找到匹配值,则返回小于查找值的最大值。
7.lookup函数与vlookup函数、hlookup函数的总结
(1)hlookup函数和vlookup函数要求查找值在查找区域的第一行/列,lookup函数没有这个要求;
(2)lookup函数要求查找区域按小到大排序,hlookup函数和vlookup函数没有这个要求;
(3)lookup函数只能实现单行/列的查找,hlookup函数和vlookup函数可以实现多列查找。
二 、引用函数
1.index函数
(1)连续区域
语法:index(区域,行号,列号)
作用:返回给定区域中特定行列单位格的交叉值或引用
示例:

(2)不连续区域
语法:index((区域1,区域2,...),行号,列号,第几个区域)
作用:返回给定区域中特定行列单位格的交叉值或引用
示例:

(3)match函数和index函数的组合使用
优势:hlookup函数和vlookup函数要求查找值在查找区域的第一行/列,如果数据不满足这个要求,可以使用match+index函数的组合。

解读:match函数可以返回查找值对应的行/列号,放入index函数的行/列的位置,然后在列/行的位置输入目标值所在目标区域的列/行号。
2.indirect函数
语法:indirect(引用区域,[引用格式])
作用:返回文本字符串所指定的引用
示例:

解读:第二参数引用格式有两种,第一种 1(TRUE)代表A1格式,可忽略不写;第二种0(FALSE)代表R1C1格式,这里解释一下这个格式,R代表row,C代表column,R1C1意思是第一行第一列交叉位置的单位格,即A1,但这种格式不常用。indirect函数的引用区域加"",为直接引用文本;引用区域不加"",为应用那个该文本表示的位置。
3.offset函数
语法:offset(基准位置,几行(正下负上),几列(正右负左),[返回几行],[返回几列])
作用:将指定的位置作为参照系,偏移特定的行列返回引用
示例:
(1)不填写第四、第五参数

(2)填写第四、第五参数

解读:如果offset函数的第四、第五参数填写的话,因为引用的是一个数组区域,所以需要按组合键“ctrl+shift+enter”,不然就会报错。
查找引用函数是能够大大减少我们校对工作的利器,而且减少了人工校对的误差,使用频率也是非常高的,希望大家能牢牢掌握,提升工作效率!