Страницы: 1
RSS
Поиск по вводимым символам из большого списка
 
Приветствую! С праздником!
Есть список порядка 3000 строк. Хочется организовать поиск по буквам, чтобы введя в ячейку несколько букв-появлялся список где они встретились.
Нашел на сайте вариант с формулами-но он работает на 200+строк, дальше нет. Может какая-то фунция ограничена малым количеством строк и ее можно заменить? Попался также вариант с вба-интересно, он может работать с большими списками? С кодом пока не разобрался, надо гуглить-но если он не работает с большими списками то нужда отпадает. Попробовал ввести значение в 3000-ную строку- в выпадающем списке оно не вышло.
 
Код
Sub MyFormShow(Target As Range)
If Intersect(Target.Parent.[A:A], Target) Is Nothing Or Target.Address = "$A$1" Then Exit Sub
    With Target.Application.ActiveWindow
        MainForm.Left = (Target.Left + Target.Width - .VisibleRange.Left) * .Zoom / 100 + .Application.Left + 25
        MainForm.Top = (Target.Top + MainForm.Height / 2) * .Zoom / 100 + .Application.Top
        MainForm.Show 0
    End With
End Sub

Sub ChekAndMyFormShow()
    If ActiveSheet.Name = Worksheets(Лист1.Name).Name Then _
       Call MyFormShow(ActiveWindow.RangeSelection)
End Sub

А тот ли это код вообще то запускает поиск? Не пойму где диапазон списка, где диапазон ячеек куда вводить текст...
 
а видели эту статью?
 


ПРОИЗВЕД,  Ну я не увидел проблем в обработке 3000 строк формулами кроме как скорости. Фильтр при использовании старых методов без новых функций не так быстр и если говорить о том что 3000 без фильтра это те же 3000 формул
=IFERROR(INDEX(E:E;SMALL(IF(ISNUMBER(SEARCH(CELL("contents");$E$2:$E$3000))+(CELL("contents")=0);ROW($E$2:$E$3000));ROWS($G$2:G2)));"")
то выбор становится отвратительным по скорости а с учетом летучести делает файл тугодумным. Про бессмысленность выбора из 3000 строк я не говорю.
Думаю те же методы с "contents" применимы для новых FILTR и будут работать шустрее.
Однако для в файле специально сделан пример для варианта с большим списком. Там как то все шустрее и нет ограничения.
Варианты иные тоже имеют место быть.
По вопросам из тем форума, личку не читаю.
 
http://www.excelworld.ru/forum/3-23521-1
 
andylu, не увидел ценного для себя, но за ссылку спасибо!

БМВ, действительно работает второй формульный способ, мистика. Видать вчера вечером уставший был что-то не то сделал... или не сделал.. По поводу целесообразности-40 таблиц по 100 позизий-если выпадающие по таблицам делать-трудоемко. А собрав все списком-вводишь 3-4 символа и остается 1-10 позиций для единственного выпадающего. Выгода налицо. Вот тормоза формульные... Пока ваше сообщение не увидел пробовал с вба разобраться-оказалось он до пропуска работает и если 3000 строк без пропусков-мигом сортирует. Вот с кодом разобраться сложнее...
 
Цитата
ПРОИЗВЕД написал:
-40 таблиц по 100 позизий-если выпадающие по таблицам делать-трудоемко. А собрав все списком-вводишь 3-4 символа и остается 1-10 позиций
так как раз я о том и пишу, что в комбо должно быть обозримое количество для ввода после фильтра да и без фильтра стоит выводить первые ну скажем 100 а не все 3000, что даже для формульного варианта становится проще в разы.
Изменено: БМВ - 23.02.2022 16:25:32
По вопросам из тем форума, личку не читаю.
 
Есть решение. Настраивается на нужный столбец. Допускаются объединённые ячейки в пределах столбца. Можно разрешить пользователям добавлять/удалять/изменять значения списка, можно оставить только поиск с выбором.
Принцип работы прост: При выборе ячейки в данном столбце на место этой ячейки появляется КомбоБокс. При вводе в него значений происходит выборка из списка на вхождение, т.е. если в списке много позиций "ООО ......" или "ИП ....", то не нужно набирать "ООО" или "ИП", а сразу "газпром" или "иванов".
Но одна проблема - не нашел этот файл на домашнем компе, хотя точно знаю что был. На работе точно есть - буквально на прошлой неделе его видел, да и знаю кто из сотрудников пользуется таблицей с этим макросом.
Если терпит до завтра - пишите.
Не стреляйте в тапера - он играет как может.
 
Цитата
Ts.Soft написал:
Но одна проблема
не одна. Данное решение убивает стэк UNDO, что делает невозможным отмену действий.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:  что делает невозможным отмену действий
Да уж, за день по 50 раз откатываешься, с макросами как сапер...

Ts.Soft, в копилку бы положил, пока формулами перевязал, переделывать уже времени нет.
 
Вот посмотрите - может подгоните под ваши задачи
Не стреляйте в тапера - он играет как может.
 
Ts.Soft, Спасибо!
Страницы: 1
Наверх