本文引用自秋天的麦兜《EXCEL函数VLOOKUP如何引用其他工作簿》
在工作及生活中, 现在,我们又拿到了一个在征方腊等战役中阵亡的梁山好汉名单(我们叫它表2),但该名单中没有各位好汉的“绰号”,让人感觉有点遗憾。如何才能方便地把表1中“绰号”信息补充到表2中呢?当然你可以查一查表1敲进去,那样我可就只好去睡觉啦!这个方法只适合几十个数据项以下,如果有成千上百就不适用啦 此时,本小子特别钟情于用VLOOKUP函数,为便于演示其用法,我们先把表1中的“姓名”与“绰号”两列数据复制到表2中放在D和E两列(我们只要在这两列数据中查找即可,如果需要其他信息请比照执行
![]() 这里的公式 =VLOOKUP(A2,D:E,2,FALSE) 的意思是说:在D:E这两列(暂称之为搜索区域)中查找A2单元格中的值“鲍旭”,找到后把搜索区域中与“鲍旭”在同一行的第2列数值(即“丧门神”)返回并显示在B2单元格中(详细用法请参见本文后面的注解);如果在搜索区域中未找到指定的数值(即姓名),EXCEL会返回一个错误值:#N/A。如下图红色所示的“晁盖”,因为宋江要做老大,而晁天王无论在政治还是黑心上均斗不过江哥,不仅无端被“借刀杀”,就连个座次也没排上,千古奇冤啊 这样,我们就基本解决了开头提出的问题。在数据量较大、为保持表格整齐或者数据不允许拷来拷去时怎么办?当然我们可以把搜索区域的信息复制到同一个工作簿中的一张新表上,但最直接的办法还是在上述公式中引用其他工作簿中的相关区域,此例为:梁山108将名单.XLS 中表名为 Sheet1 的A:B两列。现在我们把刚刚复制到表2中的D:E两列信息删掉,上述公式自然会由于找不到相关的搜索区域而报错显示为“#REF!”,只要把公式中这个位置的信息换成表1中的A:B区域就行啦。首先要打开 梁山108将名单.XLS,然后如下图所示选中公式中的错误信息(即用鼠标涂黑):
切换到 梁山108将名单.XLS(ALT+TAB或用鼠标都可以),选中A:B两列,此时公式中的错误信息即被自动替换。
键入回车,该公式就修改完毕,关闭 梁山108将名单.XLS,把公式复制到所有单元格,正确的公式如下图: 在此可以看到,在EXCEL公式中引用其他工作簿的格式为:'目录\[文件名.xls]表名'!区域,注意两个单引号是必须的,文件名称两边要用[ ]括起来。但这种格式的引用将随着文件所在的目录名称长度而激增,阅读及使用均不方便,出错后也不容易查找。还好,EXCEL也允许我们给这样的区域自定义一个名称,并且在公式中直接使用。如下图选择菜单“插入”-“名称”-“定义”:
打开“定义名称”对话框,在引用位置中输入正确的区域表达式,在名称中输入一个好记的名称,如 List ,点击确定之后EXCEL就把该区域表达式记忆下来,并且给它一个名字 List ,之后想用到这个区域时只要输入这个名称就行啦。 如下图所示,是分别使用区域名称及定义名称的方式比较,其结果完全一致。另外,对于前面我们提到过的可怜人物“晁盖”,由于不在108将中,所以找不到其绰号而出错啦。为了保持表格的美观,我们常常也需要对这种情况进行处理,以便让其不显示那些看上去别扭的错误信息。在此,小子给出了使用另外两个函数ISERR及IF来解决此类问题的方法之一。
公式中的出现的List就是我们在上一步中定义的名称,它实际指代了那个长长的区域名称:'D:\Test\[梁山108将名单.xls]Sheet1'!$A:$B。 注:VLOOKUP函数用法(摘抄自Microsoft Excel 帮助文档): 在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值。VLOOKUP 中的 V 表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP,而不用 HLOOKUP。 参数详解:
|
|