Консультация № 63804
23.11.2006, 04:24
0.00 руб.
0 1 1
Уважаемые эксперты подскажите, пожалуйста, как в excel сделать, чтобы данные одной таблицы подставлялись в другую в зависимости от выбранных строк
Например: при выборе наименования цена подставлялась автоматически.

Обсуждение

Неизвестный
23.11.2006, 10:38
общий
это ответ
Здравствуйте, Надежда!

Смотря о чем идет речь - о настройке формы или шаблона, например, счета/накладной или о необходимости обрабатывать немеренный список данных, который еще при этом периодически меняется и всю обработку необходимо производить заново для каждого обновления?

В первом случае достаточно настроить список данных в диалоге проверки данных для ячейки наименования, а в поле цены вписать формулу с функцией вертикального поиска (ВПР) или поиска позиции (ПОИСКПОЗ) и индекса (ИНДЕКС).

Во втором случае, вероятно, лучше будет создать макрос. Но можно ограничиться и формулами, если составление формулы и ее копирование не кажется слишком затруднительным делом.

Для первого случая (т.е. для решения через формулы) последовательность действий я бы предложил следующую:
(здесь лист книги Excel с Товарами и их Ценами я называю "Прайс", а лист с формой "Форма", оба листа находятся в одной книге. При этом Товар и соответствующая ему цена в Прайсте всегда находятся на одной строке таблицы, необязательно в смежных столбцах)

- в Прайсе колонке с товарами присваиваем имя "Товары", для этого выделяем соответствующий столбец (можно весь), далее Меню-Вставка-Имя-Присвоить в поле имени вводим слово "Товары" (без кавычек, конечно)
- в Прайсе колонке с ценами присваиваем имя "Цены" - точно так же, только имя вводим "Цены"
- переходим на лист Формы
- в ячейке выбора товара (допустим это A1) делаем - Меню-Данные-Проверка - на вкладке Параметры - в поле Тип данных - выбираем Список - в поле Источник - вводим "=Товары" (без кавычек)
- ОК
- после этого в этой ячейке можно выбирать значение из выпадающего списка товаров (при этом любое другое значение ввести не получится - и этого хорошо для нас)
- в ячейке, где должна появляться цена, соответствующая товару, вводем следующую формулу:

=ИНДЕКС(Цены;ПОИСКПОЗ(A1;Товары;ЛОЖЬ()))

- после этого выбирая товар в поле товара, в поле цены будет появляться сответствующая цена.

Однако для этого решения необходимо, чтобы все наименования товаров были уникальными, иначе в поле цены будет всегда появляться цена, соответствующая первому в списке товару с этим наименованием.

При необходимости в нести в Прайс новый товар, можно просто добавлять новую строку в конец списка, если имена присваивались целым столбцам. Если же имена присваивались только выделенным (заполненным) областям в Прайсе, до добавление нового товара необходимо производить путем вставки пустой строки внутрь существующего списка (при этом именнованные области Товары и Цены в Прайсе будут расширяться сами) и ее заполнения наименованием нового товара.
Форма ответа