Excel:使用公式进行单元格引用

3
我想使用 =MAX() 函数,但是要从单元格值中获取起始和结束单元格:
给出像这样的单元格值:
A1 = 110(行开始)
A2 = 130(行结束)
A3 = 4(列ID即“D”)
使用此函数,最大函数应变为
MAX(D110:D130)
当我更改单元格值时,MAX使用的范围应更改。有没有办法做到这一点? INDIRECT似乎很有用,但我不能让它工作。 我在同一个工作表上使用所有内容。
谢谢!
1个回答

2

试试这个:

= MAX(INDEX($A:$XFD,A1,A3):INDEX($A:$XFD,A2,A3))

快速提醒:应避免使用INDIRECT,因为它具有不稳定性,INDEX更受欢迎。

是的,这个能够工作!您能解释一下第一个参数吗?$A:$XFD 当我将其粘贴到我的Excel中时,它也会被转换为其他内容(但仍能正常工作!)。它被转换为$1:$1048576。 - HerrErik
@HerrErik XFD 是工作表中的最后一列,因此 $A:$XFD 表示“选择从 A 列到 XFD 列的所有列”,而 1048576 是工作表中的最后一行,所以 $1:$1048576 表示“选择从第 1 行到第 1048576 行的所有行”,因此它们都指的是同一个范围,即整个工作表。我通常只输入 $A:$XFD,因为这样打起来更短哈哈。 - ImaginaryHuman072889
$A:$XFD$1:$1048576 是整个工作表的引用(与写成 $A$1:$XFD$1048576 相同)。 A1 将给出行号,A3 将给出列号。=INDEX($1:$1048576,3,4) 将是对 D3 的引用 - 第 3 行,第 4 列。第二个 INDEX 执行相同的操作,以返回一个第二个单元格,从而给出一个完整的起始/结束范围。MAX 然后返回该范围中的最大值(抱歉,分心了,没有意识到 @ImaginaryHuman072889 已经回答了)。 - Darren Bartrup-Cook
为什么我不能像这样简单地使用:INDEX(A1,A3)。为什么我需要先指定一个范围?指定列和行可以提供函数所需的所有信息,对吗? - HerrErik
1
@HerrErik 在 INDEX 函数中引用整个工作表是相当罕见的。在 INDEX 中使用的范围通常是整行或整列(例如 $A:$A)。或者有时只是一个小矩阵(例如 $A$1:$C$3)。一个范围甚至不必是对单元格的引用。它可以是硬编码的(例如一个范围可以是 {1;5;3})。即使在你这里的例子中 INDEX(0,A1,A3)0 也是一个有效的范围。在使用 INDEX 时必须指定一个范围。 - ImaginaryHuman072889
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接