为什么我不能在Excel的ROW()公式中嵌套ADDRESS()公式?

时间:2019-08-26 17:52:26

标签: excel excel-formula

=ADDRESS(3,1)  'evaluates to $A$3

=ROW($A$3)     'evaluates to 3

我为什么不能嵌套它们?

=ROW(ADDRESS(3,1)) 'Gives an error.

2 个答案:

答案 0 :(得分:2)

尝试:

=ROW(INDIRECT(ADDRESS(3,1)))

enter image description here

答案 1 :(得分:2)

考虑使用INDEX返回一个单元格引用,而不是使用ADDRESS返回一个字符串。 INDEX的一般格式为:

INDEX(Range you want to look in, rows down from top row, columns right for first column)

因此,要引用整个工作表之类的地址,您需要选择整个工作表的范围:

  =INDEX($A$1:$XFD$1048576,3,1)

上面的公式实际上返回$ A $ 3的单元格引用($是由于3和1被硬编码了),然后转过来显示$ A $ 3的内容。结果,您实际上看不到$ A $ 3。有趣的是,这还意味着您可以使用INDEX(...):INDEX(...)定义范围。要结束公式,您可以将INDEX嵌套在ROW函数中,如下所示:

=ROW(INDEX($A$1:$XFD$1048576,3,1))

这避免了使用INDIRECT的volatile函数及其一些其他限制。

POC