Найти имя последней ячейки с данными в строке - PullRequest
0 голосов
/ 13 сентября 2011

Я искал ответ, но, похоже, я могу найти только решения на основе 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 ]

1 голос
/ 13 сентября 2011
=CHAR(COUNTA(B1:ZZ1) + 65) & ROW()
1 голос
/ 13 сентября 2011

Похоже, ваши данные отсортированы слева направо.
Если это так, вы можете начать с чего-то вроде =MATCH(MAX(C4:K4);C4:K4), чтобы получить индекс столбца последней ячейки (макс.) Строки.Отсюда легко заложить адрес:
=ADDRESS(ROW();MATCH(MAX(C1:K1);C1:K1);4)


Редактировать: объединение АДРЕСА с COUNT или COUNTA (отличная идея от Dustin Geile) не требует сортировки элементов:

=ADDRESS(ROW();COLUMN()+COUNT(B1:Z1);4)
0 голосов
/ 13 сентября 2011

Если вы ищете последнюю ячейку с данными, вы можете написать быструю функцию и поместить ее в модуль VBA в своей рабочей книге.

Открытая функция LastCell (inRange as Range) LastCell = inRange.End(XlToRight) .Address End Function

Или просто опустите «.Address», если вы хотите получить объект диапазона, указывающий на ячейку.

Затем вы можете использовать его в формуле, например...

= LastCell (A1)

С уважением, Ray

0 голосов
/ 13 сентября 2011

Вы можете попробовать эту формулу массива:

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

Подтвердить с помощью Ctrl Shift Enter

...