Дано 2 таблицы - справочник FROM и перечень WHERE В WHERE проставлены номера строк из FROM и по этим номерам (позициям) тянется столбец из FROM с помощью ИНДЕКСА То есть в FROM только 2 столбца с данными, а в WHERE 1 столбец с номерами строк и второй - с функцией =ИНДЕКС()
Вопросы: Можно ли как-то это побороть, оставив ИНДЕКС (или подтягивать столбец по позиции как-то иначе)? Почему при наличии ИНДЕКСА в WHERE фильтр FROM начинает так тупить?
ИНДЕКС - очень быстрая функция, но, если её убрать в этом случае - будет намного (в десятки раз на сотнях тысяч строк) быстрее ПОИСКПОЗ примерно такие же тупняки даёт, хотя несравнимо медленнее сама по себе Пересчёт (авто или вручную) никак не влияет
Прошу для примера вставить номера строк из FROM в первый столбец WHERE 2 раза друг под другом (2 блока) - этого будет достаточно, чтобы начались тормоза (я удалил, чтобы не раздувать файл, а обменники на работе запрещены) - на скринах показал При увеличении блоков, тормоза заметно усиливаются
!!! ВАЖНО !!! Решение нужно для "умной" таблицы, т.к. в обычных диапазонах подобной проблемы нет (достаточно преобразовать в диапазон только фильтруемую таблицу — FROM в данном примере)
UPD: При установке фильтра также многократно возрастает время пересчёта
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, у меня было в примере в Справочнике 2 одинаковых столбца с нумерацией от 1 до 20000 (чуть меньше - на скрине видно), а в перечне эти 20 тыс двумя блоками вставлены друг под другом в 1ом столбце. Во втором в перечне ИНДЕКС
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, сделал ссылку через телефон и добавил в СС
Итак: в FROM 20 тыс номеров (от 1 до 20 тыс), в WHERE этот блок (1-20тыс) скопирован 3 раза друг под другом Итог: фильтрую в FROM первый столбец по числам 2, 5 и 8. С ИНДЕКСОМ 7 секунд, без него 0,5 Мистика
Думаю, что причина та же, по которой пересчёт на отфильтрованном диапазоне в разы дольше, чем при снятом фильтре
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, файл переслал себе на почту с работы. От себя тебе, не получилось, скачал на телефон с почты и закинул на dropme, а ссылку напечатал ручками СС - стартовое сообщение
Цитата
vikttur: с 20 000 формул тормозит. Потому что много их и все пересчитываются
не то - ИНДЕКС и 100 тыс пересчитает за секунду, это проверено
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
не понял… Ломает судьбы тормозами в фильтре? Уверен, в Питере также тормозит)) Забыл после переезда как преобразовывать умную в обычный диапазон? Не забыл, но забыл сказать, что ищу решение именно для умной - в обычных диапазонах многое иначе и часто быстрее
удобство (умных таблиц) <> скорость (работы в них) — это имелось ввиду? Если да, то согласен (хотя, я бы подробнее написал всё-таки: "удобство работы в умных таблицах с лихвой компенсируется сопутствующими проблемами") А краткость - это о чём? О макросах для работы в обычных диапазонах в сравнении с объектом умной таблицы?
Пока решил "в лоб": вставляю значениями (макросом) то, что ранее тянул ИНДЕКСОМ по ПОЗИЦИИ (вставленной, опять же, макросом) Зато, минус столбец с номерами
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄