2011-01-27 40 views
76

我想根据行号和列号获取单元格的内容。行号和列号存储在单元格中(这里是B1,B2)。我知道以下解决方案可行,但他们感觉有点不好意思。获取给定行号和列号的单元格的内容

溶胶1

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

溶胶2

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

有没有更简洁的方法? (如= CellValue(row,col)或其他)?

编辑/说明: 我只想使用excel工作表公式。没有VBA。总之,我非常喜欢将VBA Cells()方法作为Excel公式的等价物。

+0

我们能否获得更多的上下文?你只使用Excel公式吗? VBA?其他一些方法? – 2011-01-27 07:55:34

回答

118

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

=INDIRECT(ADDRESS(B1,B2)) 

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

将两者的工作。请注意,INDIRECTOFFSET都是易失性函数。易失函数会减慢计算速度,因为它们是在每次重新计算时计算的。

+0

这非常有用,我希望看到它被编辑为具有正确数目的右括号。 – Wyck 2014-03-14 18:15:28

20

尝试=指数(ARRAY,行,列)

其中: 阵列:选中整个表格 行,列:您的行和列引用

这应该是比较容易理解那些寻找在公式。

1

我花了一段时间,但这是我的动力。它不依赖于已排序的表。

首先,我从一列状态名称(列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

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

相关问题