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

时间:2012-06-21 12:37:31

标签: excel excel-formula

这非常复杂,但我会尽可能清楚地解释它。如果没有意义,请告诉我。

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

我一直在对这两本工作簿进行测试。

为实现这一目标,我使用了嵌套的INDIRECT函数;第一个创建文件路径,调用命名范围,第二个告诉Excel解释该文件路径并检索该值。

我首先使用INDIRECT构建文件路径:

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

返回类似于:

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

然后将其嵌套在另一个中,以便让Excel读取该路径:

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

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

Captain America's underpants

所以上面的效果非常好。为了我。但是,在另一个用户的计算机上,它不起作用。我试图深入研究,并制定了以下内容:

  1. 文件之间的连接也出现在他们的系统上 - 探索数据>编辑链接显示他们拥有与我相同的工作连接。
  2. 生成的文件路径相同;我构建了一个宏来向用户展示它,并且在3台机器上,它每次都是相同的。
  3. 最关键的(也是令人困惑的),非嵌套的INDIRECT公式确实有效。它只是只能在我的计算机上运行的嵌套公式。在每个其他用户的计算机上,它都会返回#REF错误。
  4. 有谁知道为什么会出现这种情况?我很茫然。

    感谢你阅读那篇高谈。

2 个答案:

答案 0 :(得分:2)

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

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

工作表名称不应该在每一侧都有单引号并返回如下值:

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

我注意到你的第二个公式在文件路径之前有工作表名称的单引号。

而是尝试以下两个公式:

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

和/或

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

让我知道他们是否适合你。

答案 1 :(得分:0)

可能是一个愚蠢的问题,但这确实有用吗?

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

_Location末尾的括号是否关闭了间接函数?不应该是

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

至少这是它对我有用的唯一方法是在Indirect函数括号内有整个路径。