Excel把一个表中一列数据附加到另一个表里--vlookup函数应用
Excel把一个表中一列数据附加到另一个表里--vlookup函数应用
vlookup函数是Excel中几个最重函数之一,为了方便大家学习,兰色幻想特针对vlookup函数的使用和扩展应用,进行一次全面综合的说明。本文为入门部分。
vlookup是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为:
vlookup(查找目标,查找范围,返回值的列数,精确OR模糊查找)
下面以一个实例来介绍一下这四个参数的使用。
例1:如下图所示,要求根据表二中的姓名,查找姓名所对应的年龄。
公式:B13 =vlookup(A13,$B$3:$D$8,3,0)
参数说明:
1 查找目标:就是你指定的查找的内容或单元格引用。本例中表二A列的姓名就是查找目标。我们要根据表二的“姓名”在表一中A列进行查找。
公式:B13 =vlookup(A13,$B$3:$D$8,3,0)
2 查找范围(vlookup(A13,$B$3:$D$8,3,0) ):指定了查找目标,如果没有说从哪里查找,EXCEL肯定会很为难。所以下一步我们就要指定从哪个范围中进行查找。vlookup的这第二个参数可以从一个单元格区域中查找,也可以从一个常量数组或内存数组中查找。本例中要从表一中进行查找,那么范围我们要怎么指定呢?这里也是极易出错的地方。大家一定要注意,给定的第二个参数查找范围要符合以下条件才不会出错:
A 查找目标一定要在该区域的第一列。本例中查找表二的姓名,那么姓名所对应的表一的姓名列,那么表一的姓名列(列)一定要是查找区域的第一列。象本例中,给定的区
域要从第二列开始,即$B$3:$D$8,而不能是$A$3:$D$8。因为查找的“姓名”不在$A$3:$D$8区域的第一列。
B 该区域中一定要包含要返回值所在的列,本例中要返回的值是年龄。年龄列(表一的D列)一定要包括在这个范围内,即:$B$3:$D$8,如果写成$B$3:$C$8就是错的。 3 返回值的列数(B13 =vlookup(A13,$B$3:$D$8,3,0))。这是vlookup第3个参数。它是一个整数值。它怎么得来的呢。它是“返回值”在第二个参数给定的区域中的列数。本例中我们要返回的是“年龄”,它是第二个参数查找范围$B$3:$D$8的第3列。这里一定要注意,列数不是在工作表中的列数(不是第4列),而是在查找范围区域的第几列。如果本例中要是查找姓名所对应的性别,第3个参数的值应该设置为多少呢。答案是2。因为性别在$B$3:$D$8的第2列中。
4 精确OR模糊查找(vlookup(A13,$B$3:$D$8,3,0) ),最后一个参数是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4个参数如果指定值是0或FALSE就表示精确查找,而值为1 或TRUE时则表示模糊。这里兰色提醒大家切记切记,在使用vlookup时千万不要把这个参数给漏掉了,如果缺少这个参数默为值为模糊查找,我们就无法精确查找到结果了。
好了,关于vlookup函数的入门级应用就说到这里,vlookup函数可不只是这么简单的查找,我们讲的还只是1/10的用法。其他的没法在一篇文章中说明。敬请期待“vlookup的使用方法-进阶篇”吧。
实例:利用vlookup函数把数学成绩放到语文成绩列的后面。
sheet 1的姓名列找到相应的姓名后把数学分数填到数学列中,可以利用vlookup函数来完成。
在sheet 2的C2单元格中输入
=VLOOKUP(A2,Sheet3!$A$2:$B$11,2,0)
这里,Sheet3!$A$2:$B$11表示查找范围是表sheet3的A2到B11单元格,加$表示绝对引用地址,引用单元格范围不因公式的移动而变化。
也可以从插入-函数-查找与引用-vlookup,
在各项输入内容。
网上有人另一个解决办法是把姓名重新排序,两个表的姓名都进行降序排列。只要检查姓名排列一致,就可以复制数学成绩了。这是个简单的方法。
看下图再理解理解吧
在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。
vlookup 中的 V 参数表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 vlookup 而不是 HLOOKUP。
语法
vlookup(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value:为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若
lookup_value 小于 table_array 第一列中的最小值,vlookup 返回错误值 #N/A。 Table_array 为两列或多列数据。使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
网上有人另一个解决办法是把姓名重新排序,两个表的姓名都进行降序排列。只要检查姓名排列一致,就可以复制数学成绩了。这是个简单的方法。
看下图再理解理解吧
在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。
vlookup 中的 V 参数表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 vlookup 而不是 HLOOKUP。
语法
vlookup(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value:为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若
lookup_value 小于 table_array 第一列中的最小值,vlookup 返回错误值 #N/A。 Table_array 为两列或多列数据。使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :
小于 1,vlookup 返回错误值 #VALUE!。
大于 table_array 的列数,vlookup 返回错误值 #REF!。
Range_lookup 为逻辑值,指定希望 vlookup 查找精确的匹配值还是近似匹配值: 如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。
table_array 第一列中的值必须以升序排序;否则 vlookup 可能无法返回正确的值。有关详细信息,请参阅排序数据。
如果为 FALSE,vlookup 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与
lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
注解
在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。否则,vlookup 可能返回不正确或意外的值。有关详细信息,请参阅 CLEAN 和 TRIM。
在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。否则,vlookup 可能返回不正确或意外的值。有关详细信息,请参阅将保存为文本的数字转换为数字值。
如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在
lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。