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


4

我有两个电子表格文件( d:\ Book1.xlsx d:\ Book2.xlsx )。第一本工作簿有一张表, 表格1 有三列(id,Name,Value)。在第二本工作簿中我想要参考值 表格1 运用 VLOOKUP 。我目前引用值的公式是

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

当两个工作簿都打开时,哪个有效。但是,如果我打开 Book2.xlsx 上面的公式本身评估为 楼盘编号! 并且公式具有绝对路径而不是相对路径。

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

所以我想知道如何在不打开两个工作簿的情况下获得外部引用(或者这可能)?

注意

  1. 要明确我的公式回归 #REF! 当第二个工作簿单独打开时。

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


我昨天才看到这种行为
warren

就个人而言,我以前从未处理过此事,也无法再创作。它可能与absoloute路径有关吗?你能把实际路径放在代码中,例如c:\ temp \ book1.xlsx?
William Hilsum

@Wil我将实际路径放入公式中,它仍然只适用于打开两个文件的时间。
Azim

Answers:


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,而较短版本和命名范围版本更新。


奇怪。我似乎无法使用文件名围绕文件名而不是单引号(ticks)使用文件引用。
Azim

这可能实际上与区域设置有关。您是否尝试过使用命名范围?
mtone

1

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


0

这看起来像是Excel中的错误。我也可以重现这种行为,但我有所有与外部数据相关的选项已启用且有效。这包括“信任中心设置”中的所有选项以及“外部链接”中列出的所有工作簿参考。手动更新外部链接中的值也不会这样做。

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


所以,你的意思是这是一个excel的错误,没有解决方法?!
Azim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.