我想调用细胞A???。 B1 的值为“100”。我想通过在 B1 中使用该值来调用 A100。那么如何生成对 CELL A 的引用B1的值 ?我需要这样做,因为我希望它是动态的,所以我可以简单地更改 B1 的内容,然后让这个公式现在调用单元格 A200,例如。
任何帮助将非常感激。
-克里斯
最佳答案
执行此操作的多种方法:
=INDIRECT("A"&B1)
=OFFSET(A1,B1-1,0,1,1)
=INDEX(A:A,B1)
更新回应斯科特的评论
如何在上述选项之间进行选择:
间接:每次更新工作表中的单元格时,间接导致重新计算,并且是“重”功能。但是,您可以动态构造地址(至少是行号)。这是最接近您的问题和 最容易理解 如果您在工作表中只有一个或两个这样的公式,这可能很重要。
索引 : 索引提供了很好的性能 只要定义了您需要选择的范围。至少在最新版本的 Excel 中,它可以双向工作(水平和垂直)。它的局限性在于它只能引用一个单元格而不是与其他方法不同的范围。即使您从选择范围中插入或删除行和列,这也是一个安全的选择。公式会自行调整。
偏移量: Offset 以一定的成本提供了更大的灵 active 。每次更新工作表中的任何单元格导致文件变得“重”时,Excel 都会重新计算此公式。它提供的好处是灵 active 在您需要进一步计算的范围的大小中。例如,您可以在 A1
=SUM(OFFSET(B2,A2-2,B1-2,A3,C1))
中编写一个公式获取从 A2 中指定的行、B1 中的列、A3 中的宽度和 C1 中的高度开始的动态范围的总和。因需要引用另一张表而更新
在这种情况下,我个人的偏好是偏移,因为它允许原始单元格位于另一个工作表中,甚至是另一个工作簿中!
=OFFSET(Sheet2!A1,B1-1,0,1,1)
更新以响应 OP 在评论 中陈述的更复杂的问题
以下公式将解决 OP 所述的复杂问题
=COUNTIF(OFFSET(INDIRECT(A2&"!Z"&C3),0,0,C4-C3+1,1),C5)+COUNTIF(OFFSET(INDIRECT(A2&"!F"&C3),0 ,0,C4-C3+1,1),C5)
解释
间接公式标识另一张纸上的起始单元格。
Offset 使用它并标识要比较的整个范围。
Countif 使用 Offset 的输出并对匹配 C5 的单元格进行计数。
这对当前工作表中由 A2 指定的工作表上的 Z 列和 F 列执行两次。总有希望!
关于excel - 调用一个单元格,其行是另一个单元格的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164035/