0

我已经搜索了答案,但似乎我只能找到基于 VBA 的解决方案,这在 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)
+===========================================================+
4

4 回答 4

1

看起来您的数据是从左到右排序的。
如果是这样,您可以从=MATCH(MAX(C4:K4);C4:K4)检索行的最后一个单元格(最大值)的列索引开始。从那里,很容易建立地址:
=ADDRESS(ROW();MATCH(MAX(C1:K1);C1:K1);4)


编辑:将 ADDRESS 与 COUNT 或 COUNTA 结合使用(Dustin Geile 的好主意)不需要对项目进行排序:

=ADDRESS(ROW();COLUMN()+COUNT(B1:Z1);4)
于 2011-09-13T14:37:14.837 回答
1
=CHAR(COUNTA(B1:ZZ1) + 65) & ROW()
于 2011-09-13T15:12:11.697 回答
0

你可以试试这个数组公式:

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

验证CtrlShiftEnter

于 2011-09-13T14:46:14.140 回答
0

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

公共函数 LastCell(inRange as Range) LastCell = inRange.End(XlToRight).Address 结束函数

或者,如果您想获得一个指向单元格的范围对象,请省略“.Address”。

然后,您可以在公式中使用它,例如...

=最后一个单元格(A1)

问候雷

于 2011-09-13T14:47:44.717 回答