Найти имя последней ячейки с данными в строке
Я искал ответ, но, похоже, я могу найти только решения на основе 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 ответа
Похоже, ваши данные отсортированы слева направо.
Если это так, вы могли бы начать с чего-то вроде =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)
Вы можете попробовать эту формулу массива:
{=ADDRESS(ROW(B2),MAX(IF(ISEMPTY(B2:H2),0,COLUMN(B2:H2))))}
Подтвердить с помощью CtrlShiftEnter
Если вы ищете последнюю ячейку с данными, вы можете написать быструю функцию и поместить ее в модуль VBA в своей рабочей книге.
Открытая функция LastCell(inRange as Range) LastCell = inRange.End(XlToRight).Address End Function
Или просто опустите ".Address", если вы хотите получить объект диапазона, указывающий на ячейку.
Затем вы можете использовать его в формуле, как...
= LastCell (А1)
С уважением, Рэй