Автоподстановка значений в ячейки таблицы

Автор Allaire, 10.05.2012, 14:52

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

Allaire

Добрый день коллеги, топик стар как мир, однако я не нашел в инете ничего подходящего. Дело вот в чем - нужно реализовать автоподстановку занчений в ячейки, но не по выбору из выпадающего списка, а сделать что-то в духе "интелли-сенс" как в различных редакторах или базах. Т.е. пользователю нужно внести данные в таблицу (см. пример) - есть специальная форма ввода, пользователь вносит данные в таблицу (строки 20-29 на "форме ввода") в столбец номер 3 ("Номенклатура товарів"), данные будут браться с воркшита "Данные" (строки 11-19). Как можно заметить - в форме ввода вносится только номенклатура (название) товара, но на "печатной форме" должно выводится и название товара и код товара (столбцы 3 и 4), т.е. связанные данные со вкладки "данные", но есть условие, что если значение "Country" на вкладке "Данные" равно "UA" - то код товара выводится в таблицу на печатной форме, если это значение равно "RU", то в печатной форме не должно выводится (как показано в примере в таблице, т.е. "печатной форме"). Подскажите как организовать такую условную выборку связанных данных???
Но тут-же есть еще одна проблема - в примере на вкладке "данные" около десятка номенклатурных позиций (т.е. названий товаров), т.к. это только пример - в реальности их несколько тысяч и выбрать одну из них из списка просто нереально, поэтому я и спрашивал про  "интелли-сенс" вначале... т.е. подразумевается, что пользователь начинает вводить в таблицы название товара и выпадающее значение сокращается, чтоб было яснее - к примеру ввожу начало слова 'Gas' и сразу получаю список всего из трех значений, т.е.:
Gasket a-3 #5381
Gasket a-5 #1882
Gasket a-9 #4383
где я могу выбрать или ткнуть мышью в подходящее, а не получать к примеру полный список из воркшита "данные". Можно-ли организовать такую автоподстановку с сортировкой в екселе?

Poltava

В приложении мой вариант решения первого вопроса.
=ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(database;ПОИСКПОЗ(V12;Name;0);2)="RU";"";ИНДЕКС(database;ПОИСКПОЗ(V12;Name;0);1));"")
По поводу второго могу дать вот такую ссылку    
Надстройка: выпадающий список с поиском (комбо)

Но вот как организовать такое самому не знаю хотя очень хочется узнать как можно это реализовать поскольку эта надстройка не всегда удобна.
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Allaire

#2
Спасибо за подсказку - работает хорошо, точнее так как мне нужно  :)
По поводу "выпадающий список с поиском" - мне єто решение знакомо, пожалуй это то что мне нужно, однако жаль что не возможности заглянуть в решение, чтоб более плотно интегрировать его в свой воркшит. Я так понял - это надстройка, запускается отдельно от ексель файла так? немного неудобно ( интегрировать его можно в принципе... вопрос в том - можно ли как-то запускать надстройку сразу без лишних движений и кликов - при открытии ексель файла? макрос?

Poltava

Да это надстройка. Но зачем ее запускать отдельно ??? Добавьте ее в список надстроек и она будет подгружаться вместе с запуском экселя. Вы это имели ввиду под лишними телодвижениями ???
Или необходимость нажимать ctrl+enter ??? если второе то можно попробовать добавить макрос который по двойному щелчку в этой ячейке будет нажимать ctrl+enter.
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Allaire

#4
Я думал для запуска надстройки нужно "клацать" на ней каждый раз всместе с запуском екселя ) Я просто программирую на совершенно других технологиях и "сталкиваюсь" с екселем настолько часто, что даже не знаю где это т.н. список надстроек ) кстати эта надстройка "привязывается" к конкретному ексель файлу или к екселю на клиентском компе?

Poltava

Ну насколько я понимаю то на клиентском компе ко всем файлам вероятнее всего стоит проверка на наличие листа с нужным именем и если его нет файл игнорируется.
Ну а по поводу подключения Как установить надстройку
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Wasilic

#6
Три варианта в одном файле. Взяты на этом же форуме.
Третий, думаю Ваш. Интегрируйте.
И не забывайте отвечать на посты в собственных темах.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Allaire

Цитата: Poltava от 10.05.2012, 15:52
=ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(database;ПОИСКПОЗ(V12;Name;0);2)="RU";"";ИНДЕКС(database;ПОИСКПОЗ(V12;Name;0);1));"")

Вы не могли бы объяснить принцип работы этой формулы? Работает она корректно но я не могу ее воспроизвести - что такое "database" и "Name" на которые вы ссылаетесь?

Poltava

Так и знал что спросите :) Это динамически диапазоны. на сколько понял задачу, данных будет не 10 а много и их количество будет меняться отсюдова вывод вы не можете ссылаться абсолютно потому читаем ниже с таким способом формулы всегда будут актуальны и не будут зависить от количества строк в базе
Именованные диапазоны
Использование динамических именованных диапазонов
Прочитаете не поймете милости просим задавайте вопросы
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Allaire

#9
Спасибо за ссылки. С именоваными диапазонами я знаком, несмотря на свой "опыт" общения с екселем, но чтоб мне провалится если я вижу имя диапазона в своем файле, где их смотреть-то теперь?

Allaire

#10
Сорри, туплю - разобрался )) Спасибо огромное за помошь, особенно Poltava (земляк? я сам с Полтавы) с удовольствием плюсую, жаль что только один раз можно.  ;)

Poltava

#11
Спасибо и вам всегда рад помочь. Но еще отдельное спасибо Wasilic который дал хороший пример по поиску на форме и ему +1 за это
PS:
ЦитироватьИ не забывайте отвечать на посты в собственных темах.
Это вы мне ???
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Wasilic

Цитата: Poltava от 10.05.2012, 19:51
PS:
Это вы мне ???
Нет, автору темы. Поскольку, логическое завершение темы, все таки, должно быть сделано автором. Чего не сделано в предыдущей теме.
Да и вообще, на любое сообщение авторской темы, надо отвечать, даже если оно не совсем полезное.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Allaire

#13
Цитата: Wasilic от 10.05.2012, 21:48на любое сообщение авторской темы, надо отвечать, даже если оно не совсем полезное.
Спасибо, я это уже учел. Вы не могли-бы кое-что прояснить с вашим файлом - когда я пытаюсь использвать 2-й или 3-й вариант - получаю ошибку "type mismatch".

Poltava

Не вижу я пока ошибку :) Файлик конкретный приложите где у вас ошибка вылетает ???
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.