1

给定工作簿的文件名列表,编写一个公式来引用指定工作簿中的特定单元格值。

A----------B-------C-----D--------------------------------E----------

workbook1  sheet1  A1    '[workbook1.xlsx]sheet1'!$A$1    =(????
workbook2  sheet1  A1    '[workbook2.xlsx]sheet1'!$A$1
workbook3  sheet1  A1    '[workbook3.xlsx]sheet1'!$A$1

给定 A、B 和 C,我可以创建 D,但我找不到在 E 的公式中使用它的方法。

我无法在公式中引用 D 中的上述字符串。INDIRECT 也不起作用。

4

3 回答 3

1

根据 INDIRECT 的 Excel 2007 帮助:

如果 ref_text 引用另一个工作簿(外部引用),则必须打开另一个工作簿。如果源工作簿未打开,则 INDIRECT 返回 #REF!错误值。

是否让相关文件打开一个选项?

如果没有,听起来可能需要一些脚本......

于 2009-05-20T23:15:41.843 回答
0

感谢每个人的贡献和进一步的实验,我现在可以断言:对于工作的外部参考,必须具备多种因素。

  1. 如果引用引用另一个工作簿(外部引用),则必须打开另一个工作簿
  2. 摆脱单引号字符以使用 INDIRECT
  3. 工作簿文件名不能包含空格

例如,假设 w1.xls 和 w 2.xls 都打开,我可以创建一个新工作簿,其中包含以下内容:

A---------B-------C-----D-------------------------E---------------------------------
w1.xlsx   sheet1  $A$1  ="["&A13&"]"&B13&"!"&C13  =INDIRECT(D13)  'will work
w 2.xlsx  sheet1  $A$1  ="["&A14&"]"&B14&"!"&C14  =INDIRECT(D14)  'Does NOT work

至此,这种方式最大的局限是所有工作簿都必须打开,工作簿名称不能包含空格。

于 2009-05-21T20:39:30.577 回答
0

我认为您只需要摆脱单引号字符即可使用 INDIRECT。在 Windows NT 上的 Excel 2003 中为我工作。

A13----B13----C13--D13---------------------E13-----------

w1.xls Sheet1 $A$1 ="["&A13&"]"&B13&"!"&C13 =INDIRECT(D13)

于 2009-05-20T23:42:37.887 回答