excel用公式引用其他工作簿的数据时,一定要打开被引用的工作簿,否则返回#value!错误,怎么解决

图1 未打开被引用的工作簿时图2 打开被引用的工作簿后
2024-10-30 05:15:06
推荐回答(3个)
回答1:

EXCEL 2010 中vlookup函数可以完成跨工作簿的引用,具体如下:


格式

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 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。 

例如引用book3中sheet1中的区域时,写为[Book3.xlsx]Sheet1!$A$1:$C$5


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。

回答2:

推荐一个Excel插件,它不仅可以引用其它工作簿的数据,更厉害的是可以引用文本文件,多种数据库的数据。比如我们以这位朋友的问题为例要引用其它工作簿的数据

首先让当前工作簿连接到要引用的工作簿。方法是点击数据库连接下的CSV|TXT

连接到Excel文件所在的文件夹,如下:

这里只需要设置文件夹就行了,其它都是默认

然后打开定义数据源对话框,将要引用的工作簿的数据来源定义成一个名称。就像Excel的定义名称一样,只不过这里的定义名称的数据源都跑到了Excel外面了。名称定义好就可以在公式里面引用了。并且这里的引用名称比Excel的定义名称还要灵活。如下:

以上"folder!colleges.xlsx->"表示刚才连接的文件夹下的名为"colleges"的excel文件。

数据源定义好之后就可以在公式里面引用了,如下:

=D_VLOOKUP(A3,"Colleges!A:B",2,0)

通过D_VLOOKUP我们可以看到这个函数的用法和VLOOKUP也极为相似,只是D_VLOOKUP的第二个参数用字符串表示查找的数据区域。

同时这个插件还有很多其它常用的统计查询函数,可用选用。

回答3:

我今天也遇到这问题,你的是怎样结局的了