Попробовал пару формул, чтобы попытаться получить самое последнее значение в строке, как показано ниже, но безуспешно - кажется, работает только тогда, когда данные не имеют пробелов ??
3 ответа
Исходя из разговора между нами в комментариях, я хотел бы предложить вам метод, который сначала найдет последнюю запись, а затем после найдет соответствующий заголовок столбца.
Напишите эту формулу, чтобы получить последнее введенное значение в строке в ячейке
F3
и заполнить ее.=LOOKUP(2,1/(A3:E3<>""),A3:E3)
Чтобы получить соответствующий заголовок столбца, введите эту формулу массива в ячейку
G3
,
закончите его с помощью Ctrl+Shift+Enter и заполните Down.{=INDEX($A$1:$E$1,MAX(IF($A$3:$E$5=F3,COLUMN($A$3:$E$5)-COLUMN(A1)+1)))}
NB
- Я использовал две разные формулы, потому что в основном вы хотите получить введенное значение Lats, а получить имя заголовка необязательно.
- Настройте ссылки на ячейки в формуле, как вам нужно.
Некоторое время я смотрел на это и не смог воспроизвести ответы, когда использую разные данные, проблема в том, что LOOKUP()
требует сортировки вектора поиска, что не относится к вопросу спрашивающего.
Используя сокращенные данные (чтобы сохранить ввод), я использовал 5 строк по 5 столбцов:-
Для наглядности я построил формулы по 3 колонкам:
[G3] =SUMPRODUCT(NOT(ISBLANK(A3:E3))*2^COLUMN(A3:E3))
[H3] =INT(LOG(G3,2))
[I3] =OFFSET(A3,0,H3-1)
Затем G3:H3
копируется на необходимое количество строк.
Заметки:-
G3
- это битовая карта, в ячейках которой есть данные.H3
- самая высокая степень 2 в битовой карте.I3
- содержимое последней ячейки с данными.- Формулы могут быть вложенными, например, номер последнего столбца может быть
=INT(LOG(SUMPRODUCT(NOT(ISBLANK(A3:E3))*2^COLUMN(A3:E3)),2))
- Я разработал это с помощью LibreOffice и протестировал в Excel 2007.
Поскольку значения в диапазоне являются числовыми, вы можете просто использовать:
=LOOKUP(9.9E+307,$E11:$P11)
Так как lookup_value
будет выше любого значения в строке, формула вернет последнее числовое значение в этой строке.
Если вы хотите вернуть название месяца, вставьте эту строку в качестве аргумента result_vector
.
=LOOKUP(9.9E+307,$E11:$P11,$E$10:$P$10)
Если строка длиннее, чем E:P
, отрегулируйте параметр соответствующим образом.
Если последний столбец, который вы хотите, может содержать текст, попробуйте:
=LOOKUP(2, 1/LEN($E11:$P11),$E11:$P11)
Я думаю, что HELP
для функции LOOKUP
неверна. Смотрите мое исправление:
Если функция LOOKUP не может найти lookup_value, функция соответствует наибольшему последнему значению в lookup_vector, которое меньше или равно lookup_value.