如何修复 Excel-2007 中的外部单元格引用?

如何修复 Excel-2007 中的外部单元格引用?

我有两个电子表格文件(目录:\书1.xlsx目录:\书2.xlsx)。第一个工作簿有一个表格,表格1包含三列(id、Name、Value)。在第二本工作簿中,我想要引用表格1使用查找。我目前引用值的公式是

=VLOOKUP(1,'D:\Book1.xlsx'!Table1[#Data],3)

当两个工作簿都打开时,该方法有效。但是,如果我打开书2.xlsx上述公式本身的计算结果为參考號!并且公式具有绝对路径而不是相对路径。

我一打开書1.xlsx路径引用变为相对的,并且公式计算出正确的值。

所以我想知道如何让外部引用起作用而不必打开两个工作簿(或者这可能吗)?

笔记

  1. 为了清楚起见,我的公式返回#参考!当第二个工作簿自行打开时。

  2. 这两个工作簿都位于我的分区为d:\Book1.xlsx和d:\Book2.xlsx。

答案1

我以前也遇到过这个问题,但在重新创建您的示例时,一切都运行正常,所以一定有什么问题。我想我可能找到了它:

选择外部区域时,Excel 有时倾向于将它们恢复为巨大的引用,如下所示:

=VLOOKUP(1,[Workbook1.xlsx]Sheet1!$A$4:[Workbook1.xlsx]Sheet1!$A$10,1,TRUE)

当打开 2 个工作簿时,这种方法可以正常工作,但实际上没有必要在范围内两次指定源,因此可以缩短如下:

=VLOOKUP(1,[Workbook1.xlsx]Sheet1!$A$1:$A$10,1,TRUE)

更好的是,您还可以使用命名范围:

=VLOOKUP(1,[Workbook1.xlsx]Sheet1!MyRange,1,TRUE)

惊喜!如果单独打开 Workbook2,长格式会显示 #REF,而短格式和命名范围版本则会整齐地更新。

答案2

我在某处读到过要求当源文件关闭时,范围(例如 VLOOKUP())将返回 #REF。我可以通过向目标文件中添加一个选项卡并通过直接引用源表来复制源表来解决此问题。然后我在 vlookup 公式中引用此复制的表(现在位于同一工作簿中),一切运行良好。

答案3

在我看来,这像是 Excel 中的一个错误。我也可以重现此行为,但我已启用并启用了与外部数据相关的所有选项。这包括信任中心设置中的所有选项以及外部链接中列出的所有工作簿引用。手动更新外部链接中的值也不起作用。

我也按照这个MS 支持文章。它在一定程度上起作用,但在我关闭后,一切都会恢复到您注意到的行为。

相关内容