在Excel中嵌套的INDIRECT函数 – 在一台计算机上工作,但在另一台计算机上返回#REF

这是非常复杂的,但我会尽我所能解释清楚。 请让我知道,如果没有任何意义。

我有两个工作簿 – 一个input和一个输出。 由于系统的工作方式,它们必须是分开的,即“提名者”将所有inputinput到一个简单的input工作簿,输出工作簿将其格式化以备使用。 为了使其工作,输出工作簿必须引用input工作簿来检索值。

我一直在testing这两个工作簿正在打开。

为了达到这个目的,我使用了嵌套的INDIRECT函数。 第一个创build文件path,调用命名范围,第二个告诉Excel解释该文件path并检索值。

我首先使用INDIRECT来构build一个文件path:

 =INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$11" 

这返回类似于:

 \\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11 

然后嵌套在另一个为了让Excel读取该path:

 =INDIRECT("'"&INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$12") 

这成功地从input_sheet_location返回单元格B12的值 – 一个命名范围,它是一个文件目录。 为了论证的缘故,我们可以说它返回:

 Captain America's underpants 

所以上面的工作非常好。 为了我。 但是,在其他用户的机器上,它不起作用。 我试图挖掘,并制定了以下内容:

  1. 文件之间的连接也存在于他们的系统上 – 探索数据>编辑链接显示他们有和我一样的工作连接。
  2. 生成的文件path是一样的; 我build立了一个macros来显示给用户,在3台机器上,每次都是一样的。
  3. 最关键的(也是令人困惑的),非嵌套的INDIRECT公式确实有效。 这只是只适用于我的电脑的嵌套公式。 在其他用户的计算机上,它会返回一个#REF错误。

有没有人有任何想法,为什么这可能是这样的? 我很茫然。

感谢您阅读这个游戏。

你说第一个间接公式+ Concatination返回的值如下:

 \\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11 

不应该表单名称在每一边都有一个单引号,并返回如下值:

 \\My Documents\Subfolder\[input_sheet.xlsx]'Wk 25 2012'!$B$11 

我注意到你的第二个公式在文件path之前有单引号。

请尝试以下两个公式:

 =INDIRECT("input_sheet_location")&"'Wk 25 2012'!$B$11" 

和/或

 =INDIRECT(INDIRECT("input_sheet_location")&"'Wk 25 2012'!$B$12") 

让我知道他们是否为你工作。

可能是一个愚蠢的问题,但这实际上工作?

= INDIRECT(“input_sheet_location”)&“Wk 25 2012”!$ B $ 11“

_Location结尾的括号没有closures间接函数吗? 不应该是

= INDIRECT(“input_sheet_location”&“Wk 25 2012'!$ B $ 11”)

至less这对我来说是唯一的方法就是在整个path中使用间接函数括号。