列范围A到Z中的最后一个非空单元格

时间:2019-01-01 09:45:24

标签: excel excel-formula

有人知道在Microsoft Excel中用于查找整个工作表(具有A1:Z2500范围)中最后一个非空单元格的值的公式吗?

我可以使用以下公式获取A列的最后一个非空单元格。

=INDEX(A:A,MAX((A:A<>"")*(ROW(A:A))))

但无法获得从A1到Z2500的整个范围,如果有人知道它的解决方案,请帮助。

1 个答案:

答案 0 :(得分:3)

使用公式

=MAX(INDEX(($A$1:$Z$2500<>"")*ROW($A$1:$Z$2500),0))

我们可以获得范围的最后填充的行。那是其中充满单元格的最大行数。

并使用

=MAX(INDEX(($A$1:$Z$2500<>"")*COLUMN($A$1:$Z$2500),0))

我们可以获得范围的最后一个填充列。那是其中充满单元格的最大库仑数。

但是我们需要在最后一个填充行中最后一个填充列。因此,我们可以使用一个技巧。我们将行号乘以10000,然后将适当的列号相加。因此,我们可以将行号+列号之和的最大值作为最后填充的行中的最后一个填充列。要从该总和中获取行号,请用总和除以10000。要从该总和中获取列号,请取该除法的余数。

示例:

enter image description here

公式: AA1

=MAX(INDEX(($A$1:$Z$2500<>"")*ROW($A$1:$Z$2500),0))

AA2

=MAX(INDEX(($A$1:$Z$2500<>"")*COLUMN($A$1:$Z$2500),0))

AA3

=MAX(INDEX(($A$1:$Z$2500<>"")*(ROW(A1:Z2500)*10000+COLUMN($A$1:$Z$2500)),0))

AA4

=INDEX($A$1:$Z$2500,MAX(INDEX(($A$1:$Z$2500<>"")*(ROW($A$1:$Z$2500)*10000+COLUMN($A$1:$Z$2500)),0))/10000,MOD(MAX(INDEX(($A$1:$Z$2500<>"")*(ROW($A$1:$Z$2500)*10000+COLUMN($A$1:$Z$2500)),0)),10000))