EXCEL中,=VLOOKUP(A2,SHEET1!$A$2:$H279,7,FALSE)为什么结果为#REF!,sheet1有7列。

=VLOOKUP(A2,SHEET1!$A$2:$H$279,7,FALSE)

第1个回答  2011-11-07
以下是关于VLOOKUP函数的用法,对照你的数据表,自己分析一下,应该不难发现为什么吧。

“Lookup”的汉语意思是“查找”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP、HLOOKUO和LOOKUP。下面介绍VLOOKUP函数的用法。

一、功能
在表格的首列查找指定的数据,并返回指定的数据所在行中的指定列处的数据。

二、语法
标准格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)

三、语法解释
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以写为:
VLOOKUP(需在第一列中查找的数据,需要在其中查找数据的数据表,需返回某列值的列号,逻辑值True或False)
1.Lookup_value为“需在数据表第一列中查找的数据”,可以是数值、文本字符串或引用。
2.Table_array 为“需要在其中查找数据的数据表”,可以使用单元格区域或区域名称等。
⑴如果 range_lookup 为 TRUE或省略,则 table_array 的第一列中的数值必须按升序排列,否则,函数 VLOOKUP 不能返回正确的数值。
如果 range_lookup 为 FALSE,table_array 不必进行排序。
⑵Table_array 的第一列中的数值可以为文本、数字或逻辑值。若为文本时,不区分文本的大小写。
3.Col_index_num 为table_array 中待返回的匹配值的列序号。
Col_index_num 为 1 时,返回 table_array 第一列中的数值;
Col_index_num 为 2 时,返回 table_array 第二列中的数值,以此类推。
如果Col_index_num 小于 1,函数 VLOOKUP 返回错误值 #VALUE!;
如果Col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
4.Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。

四、应用例子
A B C D
1 编号 姓名 工资 科室
2 2005001 周杰伦 2870 办公室
3 2005002 萧亚轩 2750 人事科
4 2005006 郑智化 2680 供应科
5 2005010 屠洪刚 2980 销售科
6 2005019 孙楠 2530 财务科
7 2005036 孟庭苇 2200 工 会

A列已排序(第四个参数缺省或用TRUE)
VLOOKUP(2005001,A1:D7,2,TRUE) 等于“周杰伦”
VLOOKUP(2005001,A1:D7,3,TRUE) 等于“2870”
VLOOKUP(2005001,A1:D7,4,TRUE) 等于“办公室”
VLOOKUP(2005019,A1:D7,2,TRUE) 等于“孙楠”
VLOOKUP(2005036,A1:D7,3,TRUE) 等于“2200”
VLOOKUP(2005036,A1:D7,4,TRUE) 等于“工 会”
VLOOKUP(2005036,A1:D7,4) 等于“工 会”

若A列没有排序,要得出正确的结果,第四个参数必须用FALAE
VLOOKUP(2005001,A1:D7,2,FALSE) 等于“周杰伦”
VLOOKUP(2005001,A1:D7,3,FALSE) 等于“2870”
VLOOKUP(2005001,A1:D7,4,FALSE) 等于“办公室”
VLOOKUP(2005019,A1:D7,2,FALSE) 等于“孙楠”
VLOOKUP(2005036,A1:D7,3,FALSE) 等于“2200”
VLOOKUP(2005036,A1:D7,4,FALSE) 等于“工 会”

五、关于TRUE和FALSE的应用
先举个例子,假如让你在数万条记录的表格中查找给定编号的某个人,假如编号已按由小到大的顺序排序,你会很轻松地找到这个人;假如编号没有排序,你只好从上到下一条一条地查找,很费事。
用VLOOKUP查找数据也是这样,当第一列已排序,第四个参数用TRUE(或确省),Excel会很轻松地找到数据,效率较高。当第一列没有排序,第四个参数用FALSE,Excel会从上到下一条一条地查找,效率较低。

笔者觉得,若要精确查找数据,由于计算机运算速度很快,可省略排序操作,直接用第四个参数用FALSE即可。
第2个回答  2011-11-07
原因
1、可能删除了其他公式所引用的单元格,或者可能将已移动的单元格粘贴到其他公式所引用的单元格上。
2、可能使用了指向当前未运行的程序的对象链接和嵌入 (OLE) 链接。
3、可能链接到了不可用的动态数据交换 (DDE) 主题(服务器应用程序中的一组或一类数据),如“系统”。
4、可能运行了某个宏,该宏在工作表中输入返回值为“#REF!”错误的函数。

解决方案
*(可选)如果在 Excel 中启用了错误检查,则单击显示错误的单元格旁边的按钮 ,并单击“显示计算步骤”(如果显示),然后单击适合所用数据的解决方案。
提示 查看以下解决方案以帮助确定要单击的选项。

*更改公式,或者在删除或粘贴单元格之后立即单击快速访问工具栏上的“撤消” 以恢复工作表中的单元格。
*启动对象链接和嵌入 (OLE) 链接调用的程序。
*确保使用正确的动态数据交换 (DDE) 主题。
*检查函数以确定参数 (参数:函数中用来执行操作或计算的值。参数的类型与函数有关。函数中常用的参数类型包括数字、文本、单元格引用和名称。)是否引用了无效的单元格或单元格区域。例如,如果宏在工作表中输入的函数引用函数上面的单元格,而含有该函数的单元格位于第一行中,这时函数将返回“#REF!”,因为第一行上面再没有单元格。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网