查找连续数据的最后一个单元格的名称

我search了一个答案,但似乎只能find基于VBA的解决scheme,这在Excel 2008中不再是一个选项。

我试图返回包含数据的行中的最后一个单元格的名称。 它看起来像这样:

+===========================================================+ A / B / C / D / E (columns) +===========================================================+ 1 || [Formula] / 3 / 4 / 5 / [blank] 2 || [Formula] / 7 / 8 / [blank] / [blank] 3 || [Formula] / 9 / 10 / 11 / 12 (rows) +===========================================================+ 

最终结果如下所示:

 +===========================================================+ A / B / C / D / E (columns) +===========================================================+ 1 || D1 / 3 / 4 / 5 / 2 || C2 / 7 / 8 / / 3 || E3 / 9 / 10 / 11 / 12 (rows) +===========================================================+ 

它看起来像你的数据从左到右sorting。
如果是的话,可以从=MATCH(MAX(C4:K4);C4:K4) ,检索该行最后一个单元格(max)的列索引。 从那里,很容易build立地址:
=ADDRESS(ROW();MATCH(MAX(C1:K1);C1:K1);4)


编辑:结合ADDRESS与COUNT或COUNTA(来自Dustin Geile的好主意)不需要对项目进行sorting:

 =ADDRESS(ROW();COLUMN()+COUNT(B1:Z1);4) 
 =CHAR(COUNTA(B1:ZZ1) + 65) & ROW() 

你可以试试这个arrayformula:

 {=ADDRESS(ROW(B2),MAX(IF(ISEMPTY(B2:H2),0,COLUMN(B2:H2))))} 

使用Ctrl Shift Enter进行validation

如果您正在查找包含数据的最后一个单元格,则可以编写一个快速函数,并将其放入工作簿中的VBA模块中。

公共函数LastCell(inRange作为范围)LastCell = inRange.End(XlToRight).Address End Function

或者如果你想得到一个指向单元格的范围对象,就省略'.Address'。

然后,你可以使用一个像…

= LastCell(A1)

问候雷