excel间接单元格引用和索引行

时间:2016-01-14 10:50:36

标签: excel indexing transpose

我想引用工作表名称,然后将第1行中的总计转置为摘要工作表中的列。

我找到了以下公式,查找工作表并获取总数,然后我可以将其粘贴到查找行,实际上将行H1转移到AG1到我的摘要工作表上的列B.

=INDEX('201510'!$H$1:$AG$1,ROWS(B$1:B1))

现在我想将直接引用替换为工作表选项卡以进行查找。因此,当我在第2行中键入工作表名称时,它将为我提供每月总计。

此公式在B2中查找选项卡引用并显示H1的内容。 B2具有工作表名称。

=INDIRECT("'"&$B$2&"'!$H1")

但是,当我将此公式复制到列中时,H1不会更改为H2。此外,我需要它垂直转置到I1。

如何组合这两个公式?

谢谢, 安迪

1 个答案:

答案 0 :(得分:0)

您需要将INDIRECT函数的逻辑与常规Excel引用相结合。请注意,在您的最终公式中,"'!$ H1"是文本,意味着Excel在计算单元格的值之前不会尝试计算它。即:它不计算你输入的是一个参考,只是文本。

因此,假设您继续使用INDIRECT函数,则需要动态创建最终部分的地址。有很多方法可以做到这一点。例如:

=INDIRECT("'"&$B$2&"'!H"&ROW()-1)

此版本从B2中获取工作表名称的字符串,然后添加"'!H"作为附加字符串,然后将行作为公式所在单元格上方的单元格的当前行号。即:如果此公式在D2中,它将在另一个工作表上查找H1。此方法依赖于您的公式在工作表中处于一致的位置 - 如果您在此工作表上方插入一行,它将更改ROW()计算的内容,从而更改公式。

另一种方法是以一致指向那里的方式引用H1,并在向下拖动公式时迭代到更高的数字。此方法可能对您的目的更有用,因为它还教授另一个功能:

=INDIRECT(ADDRESS(ROW(H1),COLUMN(H1),,1,$B$2))

请注意,ADDRESS函数会创建一个字符串,用于显示对特定单元格的直接引用的方式。使用我上面的参数,它获取H1的行号[迭代,因为1前面没有$],H1的列号[向右迭代,因为前面没有$ H]和工作表名称$ B $ 2。