根据行号和列号获取单元格的内容

时间:2011-01-27 07:51:05

标签: excel excel-formula

我想根据行号和列号获取单元格的内容。行号和列号存储在单元格中(此处为B1,B2)。我知道以下解决方案有效,但他们觉得有点hacky。

Sol 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2)))

Sol 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1))

是否有冗长的方法? (比如= CellValue(row,col)或者其他什么)?

编辑/澄清: 我只想使用excel工作表公式。没有VBA。简而言之,我几乎将VBA Cells()方法视为excel公式。

3 个答案:

答案 0 :(得分:140)

您不需要公式的CELL()部分:

=INDIRECT(ADDRESS(B1,B2))

=OFFSET($A$1, B1-1,B2-1)

都会奏效。请注意,INDIRECTOFFSET都是易失函数。易失性函数可以减慢计算速度,因为它们是在每次重新计算时计算的。

答案 1 :(得分:29)

Try = index(ARRAY,ROW,COLUMN)

其中: 数组:选择整个工作表 行,列:您的行和列引用

对于那些看公式的人来说,这应该更容易理解。

答案 2 :(得分:2)

我花了一段时间,但这就是我如何让它充满活力。它不依赖于排序表。

首先,我开始使用一列州名(A栏)和每个州的一列飞机(B栏)。 (第1行是标题行)。

找到包含飞机数量的单元格:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1

我把它放入一个单元格然后给了那个单元格一个名字,“StateRow” 然后使用上面的提示,我结束了这个:

=INDIRECT(ADDRESS(StateRow,1))

这将从“StateRow”行第1列

中的动态值返回状态名称

现在,随着更多数据的输入,计数列中的值随着时间的推移而变化,我总是知道哪个州拥有最多的飞机。