【发布时间】:2012-02-02 03:32:00
【问题描述】:
我在工作表上有一系列数字,在该范围内,我如何引用索引给出的完整列或行?
我正在使用 2007.. 我查看了 HLookup/Vlookup/Index 没有成功
【问题讨论】:
标签: excel excel-formula
我在工作表上有一系列数字,在该范围内,我如何引用索引给出的完整列或行?
我正在使用 2007.. 我查看了 HLookup/Vlookup/Index 没有成功
【问题讨论】:
标签: excel excel-formula
我猜你的意思是在另一个公式中将整个列/行作为范围/数组引用?
如果是这样,我能想到的唯一方法就是使用OFFSET
=OFFSET($A:$A,,MyColIndex-1)
=OFFSET($1:$1,MyRowIndex-1,)
那就是……
=OFFSET(reference,rows,cols,[height],[width])
但是,如果您在 A 的左侧插入一列,或在 1 上方插入一行,这将不起作用。
编辑:刚刚找到解决这个小问题的方法......
=OFFSET($A:$A,,MyColIndex-Column($A:$A))
=OFFSET($1:$1,MyRowIndex-Row($1:$1),)
【讨论】:
如果您可以将范围转换为表格,那么您可以使用结构化引用来引用表格中的列。
例子
Table1 并有列Column1、Column2、Column3
E1 具有列名(例如Column1)在这种情况下,您可以计算(例如)由 E1 指定的列的总和:
=SUM(INDIRECT("Table1["& E1 &"]"))
【讨论】:
Ctrl-L 现在会创建一个表格而不是列表。
INDIRECT...
怎么样:
=SUM(INDEX(2:1048576,0,2))
这对指定范围内的整个第二列求和,即 B2:B1048576。它之所以有效,是因为索引函数的行参数中的 0 返回整个列 - 在指定的范围内。以下将仅总结 B2:B3:
=SUM(INDEX(2:3,0,2))
... 这就是 C2:C3 的总和
=SUM(INDEX(B2:F3,0,2))
【讨论】:
Index 函数对于 VBA 数组上的相同应用程序非常方便。