【问题标题】:Replace INDIRECT with INDEX to iterate closed workbooks将 INDIRECT 替换为 INDEX 以迭代关闭的工作簿
【发布时间】:2015-10-06 14:18:41
【问题描述】:

昨天我开始了一个关于将单元格从一些工作簿迭代到一个新的摘要工作簿的主题。为此,我使用了 INDIRECT 函数:

Iterate between workbooks using INDIRECT

但是,实现 INDIRECT 的反向草案我想实现相同的目标,但是通过使用 INDEX,正如我从论坛中读到的那样,即使在引用的工作簿关闭时 INDEX 也可以工作,而 INDIRECT 则不能。

然后,使用

 =INDEX(CONCATENATE("'C:\Pathtofile\[";O282;"]";$O$283;"'!";ADDRESS(11;KOLUMN()-23));1)

其中 O282 是我要引用的工作簿(以这种方式引用,因为我需要迭代一些工作簿,例如工作簿 2015-01 (O282)、2015-02 (P282) 等),而 O283 是相应工作簿的工作表,在这种情况下是静态的。我想用这个在引用的工作簿和工作表中导入单元格 D12 的值,实际上 INDEX 就是这样做的。 ;1 用于表示我只想返回 1 个单元格。 (我相信美国 excel 使用“,”而不是“;”)。

问题在于它返回:

 'C:\Pathtofile\[2015-01]Data'!$D$11

基本上是这样。 INDEX 引用正确,但它返回路径而不是预期的值。

编辑:

我试过了:

 =INDEX(CONCATENATE("'C:\Pathtofile\[";O282;"]";$O$283;"'!";ADDRESS(11;KOLUMN()-23):ADRESS(12;KOLUMN()-23));1)

获取数组 D12:E12,然后引用第一个引用行的值,即 D12。虽然这并没有奏效,但它是一种避免与 INDEX 相关的问题的方法,将我的输入解释为返回引用而不是值的平均值。

【问题讨论】:

  • 即使引用的工作簿关闭,索引仍然有效?这不是真的。它只会显示缓存的值。如果源工作簿发生更改,则在刷新工作簿连接(实际上是重新打开引用的文件)之前,您将看不到目标中的更改。
  • 如果我理解正确的话。通过由同事“手动”添加新的每月数据来手动更新引用的文件。然后目标文件中的索引功能会自动更新吗?还是我需要亲自打开文件以更新目标文件?你知道任何其他功能可以做我所追求的吗?
  • 只有当源文件和目标文件都打开时,目标文件中的值才会更新。然后,如果您保存目标文件,新值将被缓存并在您下次打开文件时显示(即使源文件此时已关闭)。如果您需要在不打开源文件的情况下获取信息,则只能通过 VBA 完成。
  • 哦,那我完全误解了 INDEX。但是话又说回来,每月只打开一次文件必须被认为是可行的,因为要打开的文件很少,所以我将继续使用 INDEX。只要我不需要每次检查摘要文件时都打开它们。你知道为什么公式只返回路径吗?
  • 好的,请看下面我的回答。

标签: excel excel-formula


【解决方案1】:

INDEX,在你的例子中,有两个参数:引用和位置。您指定了 address 而不是引用,因此 Excel 将其理解为包含一个值的范围 - 这是您的地址并将其返回给您。你应该:

=INDEX(INDIRECT(CONCATENATE(...));1)

但是当您使用引用范围中的第一个值时,您可以简单地这样做:

=INDIRECT(CONCATENATE(...))

【讨论】:

  • =INDEX(array,row_num,[column_num]) - 这是 INDEX 函数的数组形式。 - 查看更多信息:fiveminutelessons.com/learn-microsoft-excel/… 是我用于该符号的参考。我将更新 OP,因为我试图避免将 INDEX 的引用作为返回引用的手段,而是返回一个值。
  • 包括 INDIRECT 不利用缓存值,因此它会在您想要查看值的任何时候打开所有工作簿,据我了解?这不可能,因为这个文件是一个摘要文件,许多无法访问我所引用的所有文件的人都会使用它。
  • 哦,是的,我的错。您不能利用动态生成的地址进行缓存...我会考虑另一种方法。
  • 感谢您投入时间。我也在寻找解决方案
  • 或者有没有办法“复制”缓存值? IE。获取缓存值或类似值的“快照”的公式?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 2018-11-07
相关资源
最近更新 更多