【问题标题】:Excel: using formula for cell referenceExcel:使用公式进行单元格引用
【发布时间】:2018-01-10 15:37:56
【问题描述】:

我想使用 =MAX() 函数但从单元格值中获取开始和停止单元格:

给定这样的单元格值:

A1 = 110(行开始)

A2 = 130(行尾)

A3 = 4(列 ID 即“D”)

使用这个max函数应该变成

最大(D110:D130)

当我更改单元格值时,MAX 使用的范围应该会发生变化。有什么办法可以做到这一点? INDIRECT 似乎很有用,但我无法让它发挥作用。我对所有内容都使用相同的工作表。

谢谢!

【问题讨论】:

    标签: excel excel-formula excel-2010 excel-2007


    【解决方案1】:

    试试这个:

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

    快速说明:INDIRECT 应避免使用,因为它易变。首选INDEX

    【讨论】:

    • 是的,这行得通!愿意解释第一个参数吗? $A:$XFD 当我将它粘贴到我的 excel 中时,它也会被转换为其他东西(但它有效!)它被转换为 $1:$1048576
    • @HerrErik XFD 是工作表中的最后一列,因此 $A:$XFD 表示“选择 A 到 XFD 的完整列”,1048576 是工作表中的最后一行工作表所以$1:$1048576 的意思是“选择完整的第 1 行到 1048576”,所以它们都引用相同的范围,即整个工作表。我通常只写$A:$XFD,只是因为它更短,哈哈。
    • $A:$XFD$1:$1048576 是对整个工作表的引用(与编写 $A$1:$XFD$1048576 相同)。然后A1 将给出行号和A3 列。 =INDEX($1:$1048576,3,4) 将是对 D3 - 第 3 行第 4 列的引用。第二个 INDEX 执行相同的操作以返回第二个单元格,给出完整的开始/结束范围。 MAX 然后返回该范围内的最大值(soz,分心了,没有意识到 @ImaginaryHuman072889 已经回复了)。
    • 为什么我不能简单地使用类似的东西:INDEX(A1,A3)。为什么我需要先指定一个范围?指定列和行可以提供函数所需的所有信息,对吧?
    • @HerrErik 在INDEX 中引用整个工作表是非常罕见的。 INDEX 中使用的范围通常是整行或整列(例如$A:$A)。或者有时只是一个小矩阵(例如$A$1:$C$3)。范围甚至不必是对单元格的引用。它可能只是硬编码。 (例如,范围可以是{1;5;3})。即使在您的示例中,INDEX(0,A1,A3)0 也是一个有效范围。范围必须INDEX指定。
    猜你喜欢
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    相关资源
    最近更新 更多