Данные из двух таблиц в одну

Автор Proof, 15 июля 2012, 05:18

0 Пользователи и 1 гость просматривают эту тему.

Proof

Уважаемые форумчане! Помогите решить задачу: есть таблица со списком, например 1000 товаров. У каждого товара есть свой ID и несколько ячеек с текстовыми данными (например: цена, цвет, вес). Имеется вторая таблица с теми же товарами (ID), но в этой таблице другие текстовые данные (например: адрес, размер). Нужно из двух таблиц сделать одну, но чтоб у товара (ID) были все данные из первой и второй таблицы. Вся проблема в том, что во второй таблице может быть 500 товаров (т.е. количество товаров не совпадает). На данный момент из-за незнания использую трудоёмкий ручной способ: сортирую товары по ID в таблицах, потом сопоставляю и переношу колонки с данными из второй таблицы в первую... Если возможность автоматизировать этот процесс?

[вложение удалено Администратором]

Helen

обязательно применять для этого Basic?
В каком формате сейчас таблицы?

Proof

#2
Таблицы в формате .ods - насколько обязательно или нет применять Basic я не знаю... Если есть другие решения кроме применения макросов, то вполне возможно их применить - главное результат...

Helen

хорошо.
Посмотрите формулу VLOOKUP. Может, будет достаточно её одной. Остальное трудно сказать без контекста.

Proof

Посмотрел VLOOKUP с помощью встроенной в программу справки - прошу прощения, но мало что понял. Прикрепил к первому сообщению файл с примером, взгляните если вас не затруднит...

Helen

собственно, вот.
Формулы можно посмотреть в колонке цен. При желании, можно сделать обработку Н/Д с помощью условных функций, чтобы показывать внешне пустую ячейку. Или же условным форматированием.

[вложение удалено Администратором]

Proof

Спасибо огромное! Буду пытаться применить на практике...

Proof

#7
Helen, ещё раз огромное спасибо! Освоил с вашей помощью работу по подстановке данных, правда из-за того что товаров достаточно много у меня получилась примерно такая формула VLOOKUP($E$2:$E$10040;$G$2:$H$4010;2;0) - т.е. для критериев поиска тоже установен диапазон, насколько это правильно не знаю, но работает! Проблему можно считать решённой, если вы сможете мне подсказать, как избавиться от #Н/Д - что только не перепробывал - всё безрезультатно. Итоговый файл будет сохраняться в формате .csv и далее загружаться на веб-сайт, поэтому необходимо сделать ячейки с #Н/Д пустыми...

P.S. Извините, что напрасно вас побеспокоил - нашёл решение на вашем форуме, просто сайт тормозил и не хотел открывать другие страницы форума.

Ещё раз огромное спасибо! Все вопросы решены!!!

JohnSUN

Цитата: Proof от 16 июля 2012, 04:03...сможете мне подсказать, как избавиться от #Н/Д...
Это очень простой трюк. Просто в формуле вызываем VLOOKUP() дважды: первый раз проверяем не ошибку ли он возвращает, а во второй - собственно найденное значение. Как-то так:
=IF(ISERROR(VLOOKUP($E$2:$E$10040;$G$2:$H$4010;1;0));"";VLOOKUP($E$2:$E$10040;$G$2:$H$4010;2;0))
PS. Что-то не нравится мне диапазон $G$2:$H$4010 в качестве второго параметра, как-то не очень наглядно получается... Может, стоит попробовать присвоить ему осмысленное имя (Ctrl+F3)? Формула
=IF(ISERROR(VLOOKUP(Tovar;Opisanie;1;0));"";VLOOKUP(Tovar;Opisanie;2;0))
выглядит более читаемой, хотя делает то же самое
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне