Страницы: 1
RSS
Вернуть номер последней заполненной строки
 
Суть проблемы в том, что формула считает в правильном диапазоне, но с другого листа! Невзирая на явно указанную ссылку на нужный лист. Не могу понять: глюк или я туплю?
 
metome, а так?
=ПРОСМОТР("яяя";Реестр_ТТН[ТТН])
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
А зачем вот это "[ТТН]" добавлено к имени? Стоило мне этот довесок убрать - результат правильным стал в любой ячейке.

Если честно, сам не очень разобрался с причиной, но сталкивался с тем, что когда какой-то аргумент не совсем корректен, то ИНДЕКС начинает возвращать позиции относительно ячейки, в которую введена формула. В Вашем случае он так и поступает.

Кстати, вариант Bema более предпочтителен, он выдаст верный результат последней строки даже если в массиве будут пустые значения... Только тоже уберите довесок из имени!!!

Проверил вариант Bema - у меня почему-то сработал некорректно. Предлагаю свой, тоже устойчивый к пустотам:
=ПРОСМОТР(1;1/ДЛСТР(Реестр_ТТН);СТРОКА(Реестр_ТТН))
Изменено: PerfectVam - 11.07.2017 19:58:17
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
Цитата
PerfectVam написал:
А зачем вот это "[ТТН]" добавлено к имени?
PerfectVam, насколько понимаю, это имя диапазона умной таблицы.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Вот этот фрагмент формулы СЧЁТЕСЛИ(Реестр_ТТН[ТТН];">0") возвращает ноль. Может потому, что на листе Реестр ТТН в столбце A текст, а не число. Например 0001.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Да, Ваш вариант рабочий. Только неверно сработает для фантастического "ЯЯЯЯ..." в конце...
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
Можно еще более фантастический ЯЯЯЯЯЯ прописать. Ну или конкретно искать последнюю заполненную ячейку в столбце.
Уважаемые модераторы, сильно не пинайте. Предлагаю такое название:
Вернуть номер последней заполненной строки
Взял название из примера ТС :) .
Изменено: Bema - 11.07.2017 23:27:09
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Подсмотрел где-то, что для подсчёта непустых строк надо писать так: "<>".
Например: =СЧЁТЕСЛИ(A1:A5;"<>")

Теперь работает правильно!
 
Цитата
metome написал:
для подсчёта непустых строк
Есть функция СЧЁТЗ.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Дополнил формулу, чтоб она возвращала значение ячейки следующей (пустой) строки.
Теперь всё отлично. Осталось прикрутить сохранение данных формы в тот же реестр и у меня будет удобный инструмент для заполнения ТТН.
 
Цитата
Bema написал: Есть функция СЧЁТЗ.
А, точно, так проще. Оставил СЧЁТЗ.
ИТОГ

Функция, возвращающая в ячейку номер следующей (новой) записи в формате "0000" (например, 0104):

Код
=ТЕКСТ(ИНДЕКС(A:A;СЧЁТЗ(A:A))+1;"0000")
Изменено: Ярослав Чикал - 12.07.2017 11:57:52
 
Вариант без отмены объединения ячеек. Формула массива
Код
=ЕСЛИОШИБКА(ИНДЕКС(A!$D$1:$J$378;НАИМЕНЬШИЙ(ЕСЛИ((A!$C$3:$C$378=ПРОСМОТР(999999;$B$1:B$1))*(ОКПО=B!$A3);СТРОКА(A!$C$3:$C$378));1);ПОИСКПОЗ(B$2;A!$D$2:$J$2;0));"")
Страницы: 1
Наверх