Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Как найти адрес первой непустой ячейки столбца?

Автор Axacal, 27.06.2011, 01:33

« назад - далее »

Axacal

Здравствуйте, форумчане! В Excel-e не новичок, пользуюсь давно, но вот перемкнуло: :-[ не получается построить формулу, выбирающую значение из первой непустой ячейки столбца. До сих пор использовал макросы или обходные пути, но чувствую, что должно быть более простое и быстрое решение. Устроит любая форма адресации - ссылка, смещение, номер строки. Заранее спасибо! :)

kimtan

#1
Позицию первой непустой ячейки можно вернуть так:
=ПОИСКПОЗ("?";A1:A10&"";) - формула массива (текст и числа)
или:
=ПОИСКПОЗ("*";A1:A10;) - обычная формула (только текст)

Ну и соответственно возврат самих значений:
=ВПР("?";A1:A10&"";1;) - формула массива (текст и числа) - возвращает числа также в виде текста.
и
=ВПР("*";A1:A10;1;) - обычная формула (только текст)
Webmoney: E350157549801 Z116603216205 R268084006579

Prist

Не "массивная" формула для поиска номера строки:
=СУММПРОИЗВ(ПОИСКПОЗ("*?*";(""&A1:A23);0))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

kimtan

Ну раз такое дело, во еще  ;)
=ПРОСМОТР("";A1:A10&"";A2:A11)
Webmoney: E350157549801 Z116603216205 R268084006579

Axacal

#4
Ого! Я впечатлён таким разнообразием и скоростью ответа! :o Спасибо, kitman & prist. :) Теперь настроение заметно улучшилось. Справедливости ради должен отметить, что корректно работают только 3 формулы. Это пара: =ПОИСКПОЗ("*";A1:A10;) / =ВПР("*";A1:A10;1;) - для нахождения ячеек с текстом и =СУММПРОИЗВ(ПОИСКПОЗ("*?*";(""&A1:A23);0)) - для нахождения смещения до ячейки как с текстом, так и с числами. Пара формул =ПОИСКПОЗ("?";A1:A10&""; ) / =ВПР("?";A1:A10&"";1;) срабатывает только для ячеек, содержимое которых по количеству знаков равно количеству масок "?". Правда, это легко исправить, заменив в них маски с "?" на "*?*". А вот формула =ПРОСМОТР("";A1:A10&"";A2:A11) на столбце со смещанным содержимым (пустые клетки, текст, числа) вообще ведет себя некорректно. :-\
Кстати, что означает приклеивание амперсандом пробела к адресу массива (A1:A10&"")? ???

Serge 007

Цитата: Axacal от 27.06.2011, 13:40
Формула =ПРОСМОТР("";A1:A10&"";A2:A11) на столбце со смещанным содержимым (пустые клетки, текст, числа) вообще ведет себя некорректно.
У меня работает, см. вложение.
Заодно добавил ещё свой вариантик формулы, который не предлагали ранее.

Цитата: Axacal от 27.06.2011, 13:40
Что означает приклеивание амперсандом пробела к адресу массива (A1:A10&"")?
Замена пустых строк строками нулевой длинны.
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

DV68

Еще вариант немассивной:
=ПОИСКПОЗ("*?";ИНДЕКС(""&A1:A23;);)

ЦитироватьКстати, что означает приклеивание амперсандом пробела к адресу массива (A1:A10&"")?
цифры в массиве становятся текстовыми данными

kimtan

Хочется добавить:
Сцепляется не с пробелом, а со строкой нулевой длины.
Для корректной работы формулы: =ПРОСМОТР("";A1:A10&"";A2:A11) требуется хотябы одна пустая верхняя ячейка.
Webmoney: E350157549801 Z116603216205 R268084006579

IKor

Возникла похожая, но "обратная" задача: найти первую пустую строку.
В принципе, мне удались решения с доп. столбцом и с формулой массива, но хочется упростить задачу.
Есть ли у кого-нибудь идеи?

Prist

пока придумалась такая формула массива:
=СУММ(C4:ИНДЕКС(C4:$C$13;ПОИСКПОЗ(" ";" "&B4:$B$13;0))*D4:ИНДЕКС(D4:$D$13;ПОИСКПОЗ(" ";" "&B4:$B$13;0)))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453