使用存储在excel中的公式内的单元格中的字符串

时间:2016-10-02 07:51:20

标签: excel excel-formula

我想创建一个公式,将数据从文件Model Results Tool - website.xlsm提取到名为Step 2 - stacked ROI的标签中的另一个文件中。我已经建立了一个公式来做到这一点:

=IF(AND(B$3<>"",'Step 1 - description of models'!$B5<>""),SUMIF('[Model Results Tool - website.xlsm]Step 13 - ROI'!$B$3:$GT$3,B$3,'[Model Results Tool - website.xlsm]Step 13 - ROI'!$B$9:$GT$9),"")

B$3<>""检查只是确保该指标有一个列标题,而'Step 1 - description of models'!$B5<>""检查确保前面列出了Model Results Tool - website.xlsm模型参考文献列表。 NB。这是项目中包含的模型列表。他们的名字和数量将改变项目到项目,所以这似乎是最明智的方法。

我希望能够做的是将公式中的字符串Model Results Tool - website.xlsm替换为我创建的引用列表中的单元格'Step 1 - description of models'!$B5<>"",以便单元格名称明确包含在公式但它解析为单元格的内容,即Model Results Tool - website.xlsm

我意识到这有点罗嗦,似乎过度杀戮但报告是在一组分析师中生成和分析的,因此需要建立治理方式,使公式不会改变,但看起来 - up / reference列表可以是。

以下是截图 - 请注意,所有包含的数据都已完全构成

this is a screenshot of the formula which I need to amend

this is the reference list on the preceeding tab

2 个答案:

答案 0 :(得分:1)

据我了解,您希望在单元格中存储文件名,然后在公式中使用对该单元格的引用,该公式对该文件中的数据执行计算。

Excel的INDIRECT()函数可用于将文本转换为单元格引用。不幸的是,如果单元格中的文本指向已关闭的工作簿,则INDIRECT()将不起作用。必须打开INDIRECT()引用的任何文件才能使公式生效。在许多情况下,这会破坏动态文件名的目的。

Laurent Longre有一个名为Morefunc.xll的免费插件,它有一个名为INDIRECT.EXT()的函数,它与封闭的工作簿一起使用。 Morefunc.xll可以是downloaded here。请注意,它不适用于64位版本的Excel。

答案 1 :(得分:1)

我建议在Sheet“Step 2 - stacked ROI”中添加一个额外的列,并用Model名称填充它。例如。因此A7包含digital。 然后,以下公式将总结您所需工作表中的数据:

 =IF(AND(C$3<>"",'Step 1 - description of models'!$B5<>""),SUMIF(INDIRECT("'"&VLOOKUP($A7,'Step 1 - description of models'!$A$5:$B$31,2,FALSE)&"Step 13 - ROI'!$B$3:$GT$3"),C$3,INDIRECT("'"&VLOOKUP($A7,'Step 1 - description of models'!$A$5:$B$31,2,FALSE)&"Step 13 - ROI'!$B$9:$GT$9")))

teylyn提到的限制当然是正确的(仅适用于打开的工作簿),但在打开和关闭所有源工作表后,数字将更新并保留在结果表中。 希望我对这个公式的暗示可以帮助你。