在纯Excel中,如何引用一个范围内的列(无VBA)

我在表单上列出了一系列数字,从那个范围,我如何引用由索引给出的完整列或行?

我正在使用2007 ..我没有成功地看着HLookup / Vlookup / Index

我猜你是指将整个列/行作为另一个公式中的范围/数组?

如果是这样,我能想到的唯一办法就是使用OFFSET

 =OFFSET($A:$A,,MyColIndex-1) =OFFSET($1:$1,MyRowIndex-1,) 

那是…

 =OFFSET(reference,rows,cols,[height],[width]) 

但是,如果您在A的左侧插入一列,或者在1以上的行插入一列,这将不起作用。

编辑:只是find了一个解决这个小问题的方法…

 =OFFSET($A:$A,,MyColIndex-Column($A:$A)) =OFFSET($1:$1,MyRowIndex-Row($1:$1),) 

感觉如何?

 =SUM(INDEX(2:1048576,0,2)) 

这将指定范围内的整个第二列相加,即B2:B1048576。 它的工作原理是索引函数的row参数中的0返回整个列 – 在指定的范围内。 以下将总结B2:B3:

 =SUM(INDEX(2:3,0,2)) 

…这将总结C2:C3

 =SUM(INDEX(B2:F3,0,2)) 

如果可以将范围转换为表格,则可以使用结构化引用来引用表格中的列。

  • 您的表称为Table1并具有列Column1Column2Column3
  • 单元格E1具有列的名称(例如Column1

在这种情况下,您可以计算(例如)E1指定的列的总和:

 =SUM(INDIRECT("Table1["& E1 &"]"))