【发布时间】:2013-12-30 18:46:18
【问题描述】:
我有一个 Excel 工作簿 Spreadsheet.xlsx,其中 B2=MATCH(B1,'\\SERVER\Path\To\File\[Workbook.xlsx]Sheet1'!$A$1:$A$500,0) 在 B1 中获取字符串(名称)并将其与 Workbook.xlsx 中的一列行标题匹配,以给出行号。
目前B2返回值8,用于B3=INDEX('\\SERVER\Path\To\File\[Workbook.xlsx]Sheet1'!$A$8:$SD$8), MATCH($A4,'\\SERVER\Path\To\File\[Workbook.xlsx]Sheet1'!$A$2:$SD$2,0))。
B3 索引一系列值 $A$8:$SD$8,对应于 Workbook.xlsxSheet1 中 B2 中的行号/strong>,并返回与$A4 范围内的日期$A$2:$SD$2 匹配的值。
目前我手动输入行号到 B3 范围`$A$8:$SD$8.
如果我尝试使用 B3=INDEX(INDIRECT("'\\SERVER\Path\To\File\[Workbook.xlsx]Sheet'!$A$"&B2&":$SD$"&B2), MATCH($A4,'\\SERVER\Path\To\File\[Workbook.xlsx]Sheet1'!$A$2:$SD$2,0)) 自动执行此操作,则会收到 #REF 错误。
我在其他地方使用过INDIRECT,例如=MAX(INDIRECT(K&"K1")) 它工作得很好。
另外,里面的Workbook.xlsx和Sheet1是肯定存在的,我可以不使用INDIRECT从它们那里获取数据。
为什么它不起作用?
【问题讨论】:
-
嗯,我不完全确定是什么问题,但是如果在计算时
Workbook.xlsx是打开的,那么公式是否有效?如果它引用的文件被关闭,这是一个不起作用的功能,但是INDEX和MATCH也是如此,所以我只是想通过排除这一点来确认。另一件可能是错字的事情是,INDEX的第一部分引用了一张名为“Sheet”的工作表,而您在其他任何地方都没有提及。 -
@Jerry 问题是我的公式可以单独正常工作,但是当我尝试使用
INDIRECT将结果从一个单元格传递到另一个单元格时,它不起作用。如果我将 B2 的值手动输入到 INDEX 引用的范围内,它可以正常工作;如果我使用INDIRECT将B2 中的数字输入到B3,它不起作用。此外,是的,当Workbook.xlsx旁边打开时它确实有效,然后当它关闭时则无效。感谢您发现错字,已修复!
标签: excel ms-office excel-formula excel-2010 excel-indirect