大家都知道在Excel电子表格中,用Vlookup去查找某单元格内相关的值。经常也会用到lookup,有时也会用到Index,Match等函数来查找数据。这几个函数都可以查找相关的值,那么他们之间有什么不同,和如何结合起来做更加复杂的查询呢?
函数含义,先来了解一下各个函数的定义和用法
Vlookup()
Vlookup函数用于搜索某个单元格区域或数组的第一列,然后返回相同行中指定列的值。
Hlookup函数用于搜索某个单元格区域或数组的第一行,然后返回相同列中指定行的值。
两者的区别只在于查找的方式,前者是在区域或者数组的第一列中查找,而后者则是在第一行中查找,即横向与纵向的区别。
前者是在区域中左列查找返回右边指定列对应的值。
后者是在区域上边行查找返回下边指定行对应的值。
Lookup()
从单行/单列(向量)或数组中查找值。
Lookup函数可从区域或者数组的第一行或第一列中查找数据,返回最后一行或最后一列中对应的数据。区域或者数组可以是单行或单列(称为向量),也可以是多行或多列,但是实际工作中多用于单行或单列查找,对于多行或多列的区域或者数组,通常采用Vlookup和Hlookup函数来解决。
Index()
返回指定单元格或指定单元格数组的值。
Index函数能引用区域或者数组中指定行与列的值,包括两种引用方式:数组和引用。如果是数组形式只能返回数值,如果是引用形式则返回引用。
Index(array,row_num, [column_num])
index(reference,row_num,[column_num],[area_num])
Match()
返回值在数组或者区域中的对应位置。
Match(lookup_value, lookup_array, [match-type])
第一个参数支持通配符,也支持数组;
第二个参数表示需要在其中查找值的一个区域或数组,只能是单行或单列;
具体实例
有以下数据:
商品 | 一季度 | 二季度 | 三季度 | 四季度 | 商品 | 手机 | |
电视 | 593 | 752 | 643 | 802 | 时间 | 三季度 | |
冰箱 | 579 | 639 | 629 | 689 | 销量 | ||
洗衣机 | 899 | 869 | 949 | 919 | |||
空调 | 532 | 723 | 582 | 773 | |||
音响 | 826 | 977 | 876 | 1027 | |||
电脑 | 580 | 780 | 630 | 830 | |||
手机 | 729 | 777 | 779 | 827 | |||
微波炉 | 797 | 968 | 847 | 1018 | |||
电暖气 | 791 | 642 | 841 | 692 |
在销量后应用公式:=HLOOKUP(H2,A1:E10,MATCH(H1,A1:A10,0))
可以得到779的值。
引用函数比较
函数名 | 类别 | 第1个参数 | 第2个参数 | 第3个参数 |
lookup() | 向量型 | lookup_value | 区域 | [区域] |
数组型 | lookup_value | 区域 | 无 | |
hlookup() | lookup_value | 区域 | row_index__num | |
vlookup() | lookup_value | 区域 | col_index__num | |
match() | lookup_value | 区域 | ||
index() | 向量型 | reference | row_num | [col_num] |
数组型 | array | row_num | [col_num] |
不同函数查找效果实例对比
学号 | 学生 | 学号 | 学生 | |
9372001 | 甲 | 9372003 | =INDEX(B:B,MATCH(D2,A:A)) | |
9372002 | 乙 | =VLOOKUP(D2,A:B,2,0) | ||
9372003 | 丙 | =LOOKUP(1,0/(D2=A2:A13),B2:B13) | ||
9372004 | 丁 | |||
9372005 | 戊 | |||
9372006 | 己 | |||
9372007 | 庚 | |||
9372008 | 辛 | |||
9372009 | 壬 | |||
9372003 | 癸 |
公式对应的值:
学号 | 学生 | 学号 | 学生 | |
9372001 | 甲 | 9372003 | 丙 | |
9372002 | 乙 | 丙 | ||
9372003 | 丙 | 癸 | ||
9372004 | 丁 | |||
9372005 | 戊 | |||
9372006 | 己 | |||
9372007 | 庚 | |||
9372008 | 辛 | |||
9372009 | 壬 | |||
9372003 | 癸 |
总结:
1.Horizontal水平,Vertical垂直;
2.区域的开始列一般为lookup_value变量所在列,终止列一般为lookup_value值所在列;
3. lookup()将“区域”的最后一列默认为值所在列;
4. Vlookup()的lookup_value,一般由行形成记录,变量在区域首行,值在某列(首列对应lookup_value的关键字,某列对应具体值);
5. hlookup()的lookup_value,一般由列形成记录,变量在区域首列,值在某行(首行对应lookup_value的关键字,某行对应具体值);
6. 向量型lookup()可以从单行、单列区域或者一个数组中返回值,其区域是单行或单列;
7. match()用于返回位置;
8. index()用于返回区域中的值或值的引用;
参考自:小智雅汇(头条号)