Всем доброго времени суток! Чтобы найти номер максимальной строки, в которой содержится искомое значение, я сейчас использую формулу (понятно, что эта формула массива)
Код
=МАКС(ЕСЛИ(E:E="Какоетослово";СТРОКА(E:E)))
Вопрос такой, не сильно ли эта формула грузит эксель и можно ли ее заменить на другую формулу, которая бы делала то же самое, но была бы менее требовательной к ресурсам.
Файл не прилагаю, т.к. это может быть абсолютной любой файл в котором в пределах одного столбца на определенном листе находятся значения (некоторые ячейки заполнены, некоторые нет, значений ошибок в этом столбце нет)
Самое первое - не стоит указывать целый столбец, уже лишняя нагрузка. Сравните с этой =ПРОСМОТР(2;1/(E1:E10="Какоетослово");СТРОКА(E1:E10)) и сами определите, какая из них быстрее
Согласен Вами на все 100%, но делая так я закрываю проблему того, что пользователь вставить строку, над той, которая сейчас первая... Соответственно, ищется альтернативное решение, которое бы это учитывало. Советовать запретить пользователю не вставлять строку - можно, но я, все равно, не смогу полностью запретить.
так как формула предложенная vikttur и не сильно сложнее то её, единственное , что или диапазон с разумным запасом, или добавить автоопределение диапазона, используя столбец без проколов как опорный например так E1:INDEX(E:E;counta(A:A))
Вить, меня "*" смущает. ведь ни дыры , ни числовые значения не посчитает. Плюс не знаю что там кто умеет, но СЧЕТЗ быстрее чем СЧЕТЕСЛИ. Проверил на 500к строк и 10к формул. Да про первую строку пропустил, ИНДЕКС тут к месту.
вот так =ПРОСМОТР(2;1/(ИНДЕКС(E:E;1;1):ИНДЕКС(E:E;1;500)="Какоетослово");СТРОКА(ИНДЕКС(E:E;1;1):ИНДЕКС(E:E;1;500))) не срабатывает... почему? ошибка #ССЫЛКА! тупанул, извиняюсь все, конечно же, работает =ПРОСМОТР(2;1/(ИНДЕКС(E:E;1;1):ИНДЕКС(E:E;500;1)="Какоетослово");СТРОКА(ИНДЕКС(E:E;1;1):ИНДЕКС(E:E;500;1)))
Konstantin Zhi написал: ИНДЕКС(E:E;1;500)="Какоетослово"
Зачем Вы сравниваете эту ячейку, вам нужно сравнивать диапазон. Думаю что диапазон нужно обернуть в скобки. А лучше пошагово посмотрите в какой момент у вас появляется ошибка. Вкладка Формулы--Вычислить формулу. Только диапазон уменьшите до 10 или 5 строк, всё равно понятно будет когда появится ссылка.
Думаю что это не так, только что обратил внимание ИНДЕКС(E:E;1;500) = это первая ячейка 500 столбца, а столбец Е. Можно или нужно наоборот ИНДЕКС(E:E;500;1) или вообще ИНДЕКС(E:E;1):ИНДЕКС(E:E;500)