Как выбрать последнее значение в строке с пустыми ячейками

Автор don_zp, 5 сентября 2013, 11:02

0 Пользователи и 1 гость просматривают эту тему.

don_zp

Доброго дня.
Есть задачка: нужно вернуть последнее введенное значение (крайнее справа) из строки включающей числа, текст и пустые ячейки.
В кальк не работает вариант для ексель:  ПРОСМОТР(2;1/(A1:N1<>"");A1:N1)

JohnSUN

Добро пожаловать на форум!
Да, ПРОСМОТР - не лучшая функция для такой задачи.
В Calc лучше использовать такую конструкцию:
=SUMPRODUCT(MAX(COLUMN($A1:$AMJ1)*($A1:$AMJ1<>"")))
Эта формула вернет номер последней колонки с данными в первой строке текущего листа.
Есть несколько вариаций на эту тему, например, формула массива
{=MAX(COLUMN($A$1:$AMJ$1)*($A$1:$AMJ$1<>""))}
даёт тот же результат, но не очень удобна для последующих вычислений.

А чтобы по имеющемуся номеру колонки и известному номеру строки получить значение ячейки можно использовать, например, функцию OFFSET:
=OFFSET(A1;0;SUMPRODUCT(MAX(COLUMN($A1:$AMJ1)*($A1:$AMJ1<>"")))-1)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

don_zp

Большое спасибо, JohnSUN. Самое главное ваш вариант ексель нормально преобразует и обрабатывает. А то я переживал, что две версии файла придется иметь.

JohnSUN

Ну, с Экселем возможны проблемы... "Свежие" версии понимают колонку $AMJ. Даже $XFD для них не проблема. А "старенькие" версии, которые работали только с 256(?) колонками,  могут от такой формулы офонареть...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

don_zp

У меня столбцов менее сотни, так что всё в порядке. А вот какой вариант использовался в ексель, если интересно:
=ПРОСМОТР(2;1/(B7:BL7<>"");B7:BL7)