【问题标题】:Iterate between workbooks using INDIRECT使用 INDIRECT 在工作簿之间迭代
【发布时间】:2015-03-10 11:34:54
【问题描述】:

我想创建一个摘要文件,我希望从某些工作簿中导入单元格 D11 中的数据。为此,我尝试使用 INDIRECT 调用工作簿 O284,其中 O284 到 O296 由以下字符串组成:

 2015-01 (for O284), 2015-02 (for O285 etc)

其中 O285 是工作表名称,这对于每个工作簿都是一致的,因此是 $$'s。

=INDIRECT("'C:\Path\["&O284&"]"&$O$285&"'!$D$11")

但是运行它不会返回一个值,而只是一个####。我打开了所有工作簿。我怀疑我执行 INDIRECT sn-p 错误,但我不知道怎么做。有人知道吗?

问候,

顺便说一句,有没有一种方法可以在不使用宏的情况下实现与使用封闭工作簿的 INDIRECT 相同的功能?像“粘贴值”或您可以以与 INDIRECT 相同的方式使用但返回数字但单元格中没有公式符号的东西?

编辑:

=INDIRECT(CONCATENATE("'C:\path\[";O282;"]";$O$283;"'!D11"))

用于从工作簿 O282 中获取值“D11”。当我将此公式拖出时,下一列将引用工作簿 P282。但是,它仍然得到单元格 D11。我希望它从这个工作簿中获取 E11 单元,并像这样工作。有人知道吗?

【问题讨论】:

  • 嗯.. 想了解一下,你需要在哪里使用 CONCATINATE?
  • 对不起,我没有你的问题,我正在删除我的 cmets。显示#### 有时是因为单元格宽度,我认为您实际上知道这一点。
  • 这不是由于单元格宽度,但您的评论确实有效。我现在正试图让它工作,以便“D11”不使用 $$,而是可以拖到 E11、F11 等。还没有通过简单地删除 $$ 或更改一些来使其工作" '。
  • Office support page 中,您似乎不需要$$,但是当您通过单击它进行引用时添加$$。但实际上我建议使用ADDRESS(11,4) 而不是D11,这将帮助您更改列;)。
  • 我通过使用column()函数将D更改为E来添加答案

标签: excel excel-formula


【解决方案1】:
=INDIRECT(CONCATENATE("'C:\";[@Path];"\[";[@WorkbookName];"]";[@SheetName];"'!";ADDRESS(11;COLUMN() - 11)))

我认为代码是你想要的。

  • 显示#### 有时是因为单元格宽度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多