【发布时间】:2015-07-12 07:26:16
【问题描述】:
我有一个“summary.xlsx”文件,其中存储了几个已关闭的“单一报告 xlsx”的状态。
单个报告已存储在文件共享中。每个报告都存储在不同的文件夹下,例如\MineServer\Reports\ReportA\singleReport.xlsx(粗体条目是可变的)。
为了使公式变量,我需要将路径和文件名信息放入单元格中,然后需要从那里读取 - 我总是在下面出现错误:
('N/A,#value).
如果我将路径/文件名硬编码到公式中,我正在使用的公式确实有效。 所以公式看起来像 =
{index('\\myServer\Reports\ReportA\
[singleReportA.xlsx]Report'!$E$2:$E$5,Match(1,('\\myServer\Reports\ReportA\
[singleReportA.xlsx]Report'!$B$2:$B$5=A76)*('\\myServer\Reports\ReportA\\
[singleReportA.xlsx]Report'!$C$2:$C$5=AA76),0))}
仅供参考:我需要从 $E$2:$E$5 获取每个报告的状态,其中名称(我的 summary.xlsx 的 A76)和一个数字(我的 summary.xlsx 的 AA76)匹配。
如前所述,如果我对所有内容都进行硬编码,那么它就像一个魅力。但是,如果我将相关的路径和文件名信息放入单元格并尝试使用
{=index("" BO13 & "[" B017 & "]" & B018 & "'!$E$2:$E$5", Match(
然后就不行了。
我也尝试了indirect.ext函数,可惜也没有成功。
我真的希望有人能给我一个提示,或者甚至更好地将硬编码公式“翻译”成变量公式——因为我不知道如何让它工作......
编辑
现在我终于明白了——至少差不多。现在的公式是这样的
`=INDEX(INDIRECT.EXT("'"&BO13&"["&BO17&"]"&BO18&"'!"&BU5),MATCH(A75,INDIRECT.EXT("'"&BO13&"["&BO17&"]"&BO18&"'!"&BU7),0),MATCH(AA75,INDIRECT.EXT("'"&BO13&"["&BO17&"]"&BO18&"'!"&BU8),0))`
唯一的问题是,我没有得到正确的结果集。
通常我希望得到第 5 列的结果,但我正在从第 4 列中获取单元格信息。
我做错了什么?我需要添加什么才能获得正确的列信息?
【问题讨论】:
-
如果没有
Indirect.Ext,您将无法动态创建有效的外部工作表/单元格范围引用。尝试没有意义。您的问题可能更多是关于为什么Indirect.Ext不起作用,或者您可以尝试 VBA 解决方案甚至数据 ► 来自其他来源 ► 来自 Microsoft Query。 -
谢谢,但是如果路径/文件/工作表名称被硬编码到公式中,为什么它可以在没有 direct.ext 的情况下工作???
-
这就像
=A1和="A1"之间的区别。前者是有效的单元格地址,后者是看起来像单元格引用的文本字符串。你可以硬编码一个类型化的引用,就像你可以输入=A1一样,但是一旦你开始通过将片段连接在一起来构造一个字符串,结果就是一个需要INDIRECT function之类的字符串来生成一个可用的单元格引用。 INDIRECT 无法处理外部引用,但 INDIRECT.Ext(第三方插件)可以。 -
有多少种不同的 BO13/B017/B018 参考文献?
-
知道了!只有三个这样的引用...你知道如果我必须匹配 2 个条件,indirect.ext 是否可以工作吗?
标签: excel indexing path match cells