公式引用其他工作簿

时间:2009-05-20 22:02:03

标签: excel-formula

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

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也不起作用。

3 个答案:

答案 0 :(得分:1)

根据Excel 2007帮助INDIRECT:

  

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

是否打开了相关文件选项?

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

答案 1 :(得分:0)

感谢大家的贡献和进一步的实验,我现在可以断言: 必须有一系列因素可供外部参考工作。

  1. 如果引用引用另一个工作簿(外部引用),则必须打开另一个工作簿
  2. 删除单引号字符以使用INDIRECT
  3. 工作簿文件名不能包含空格
  4. 例如,如果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
    

    到目前为止,这种方法的最大限制是所有工作簿都必须打开,工作簿名称不能包含空格。

答案 2 :(得分:0)

我认为你只需要摆脱使用INDIRECT的单引号字符。适用于Windows NT上的Excel 2003。

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

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