当数据位于单独的工作表上时,在 Index 公式中使用间接函数

当数据位于单独的工作表上时,在 Index 公式中使用间接函数

此公式使用标签上的表格数据抗静电

=INDEX(厌食症!$E$42:$L$2140,MATCH('图形数据'!$E4,厌食症!$E$42:$E$2140,0),匹配(H$3,厌食症!$E$42:$L$42,0))

表格数据的左侧是日期和时间值,顶部是唯一的标签。公式本身位于另一个名为图形数据。随着时间的推移,表格数据的形状可以垂直变化,水平添加其他数据列以显示趋势。

通常情况下,人们会用鼠标勾勒出数据,但我希望将单元格地址传递给公式,这样每次数据表都会缩小或扩大。这样我就不需要重复选择单元格和复制公式了。

在选项卡上厌食症,我有确定表格数据角的单元格地址的公式,例如数据的角当前

  • 左栏顶部42 欧元 -- 存储在单元格中'获取数据'!d1
  • 左栏底部厄立特里亚2140美元-- 存储在单元格中'获取数据'!e1
  • 最远右侧柱顶$L$42-- 存储在单元格中‘获取数据’!
  • 远 Rt 柱的底部2140 美元-- 存储在单元格中'获取数据'!N3
  • 工作表名称厌食症-- 存储在单元格“获取数据”中!B2

那么我如何从这些单元格传递这些单元格地址“获取数据”公式中,因为它们引用了不同工作表上的单元格?想这样就可以查找单独工作表上的数据,而不必每次都手动选择数据。 间接(B1&"!&E1&":"&F1)给出INDIRECT(“apestatic!e81:e2140”)但如果只是放在单元格中,则计算结果为 #VALUE!

我试图使用间接()并连接起来&使用不对称工作表名称和单元格地址创建范围,但我还没有弄清楚如何在公式中创建斜体项。引用范围可能是一个问题。有什么建议吗?

答案1

解决一个谜题:如果工作表名称包含空格,Excel 会在工作表名称周围放置单引号。

=INDEX(apestatic!$E$42:$L$2140,MATCH('Graphed data'!$E4,apestatic!$E$42:$E$2140,0),MATCH(H$3,apestatic!$E$42:$L$42,0))

我调整了公式,以使用上一次匹配的范围的绝对引用。这将使您能够在“图形数据”表中复制公式。

您从未描述过问题是什么,但也许这就是答案。

答案2

您可以使用 TWOINDIRECT来完成工作:

=INDIRECT(B1&"!"&E1) : INDIRECT(B1&"!"&F1)

奇怪的是,这将为您提供一个实时范围。

另一种方法是将单元格中具有范围角信息的文本设置为范围文本。因此,例如,E1 和 F1 可能有“E81”和“E2140”。令人沮丧的是,它们不适用于单个INDIRECT,无论出于何种原因,您都不希望使用INDIRECT上述两种方法。因此,将单元格...哦... G1 设置为 E1 和 F1 的连接:e81:e2140。中间用冒号完成。现在INDIRECT可以通过一个步骤获得范围:

=INDIRECT(B1&"!"&G1)

我认为这就是你要问的问题。顺便说一句,关于你构建的要呈现给的字符串,有两件事INDIRECT

  1. 正如 所述teylyn,如果工作表名称中有空格,则必须用一对单引号括起来。所以'Get Data',不是Get Data。幸运的是,Excel 可以很好地使用单引号括起工作表名称,并且没有空格!因此,您可以随时添加单引号,而不必担心会造成任何损害。正如她所指出的,相反的情况绝对不是这样!

  2. 这些单引号和!实际单元格地址之前的字符可以放入您正在创建的字符串中……无论它们实际上在哪里(您声明它们在一个地方,然后立即显示一个公式在其他地方寻找它们,所以谁知道呢,是吗?)。因此,无论如何找到地址,例如$E$42左上角的地址(然后立即变成E81公式中的地址……)并考虑将它们立即连接成完整的字符串,'apestatic'!$E42以便在您的工作公式中,您只需要引用单元格本身INDIRECT(例如INDIRECT('Get Data'!E1)而不是INDIRECT("'"&"Get Data"&"'"&"!"&E1))。可能会让您的生活更轻松,尽管您当然可以以任何对您来说最自然的方式做到这一点。同样适用于创建您知道您想要的范围:在那些“获取数据”工作表单元格中构建它们,中间有冒号(就像我虚构的 G1 单元格一样E81:E2140)或使用两个INDIRECT并记住中间的冒号不是任何字符串的一部分,所以它只是:并且不像&":"&在使它成为范围的整个字符串的一部分时那样,单一INDIRECT方法对您不起作用。做最符合您想法的事情,因为您必须一眼就明白,而不是我们中的任何一个人。

相关内容