Объединить две таблицы с разными полями, чтобы строки совпали по значениям

Автор Shrain, 13 июня 2017, 16:45

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

Shrain

Всех приветствую!

Очень нужна помощь с объединением таблиц. Задача звучит так: Нужно объединить две таблицы с разными полями, но так, чтобы строки второй таблицы совпали с соответствующими строками первой.

Если подробнее, то:
В таблице 1 есть 4 поля: Марко-сечение, title, description, keywords
В таблице 2 тоже 4 поля: IE_XML_ID, IE_NAME, IE_PREVIEW_TEXT, IE_CODE
Нужно сделать новую таблицу, с 8 полями, объединив поля из обеих (см. пример).
При этом в новую таблицу нужно добавить только те строки из таблицы 2, значение поля IE_PREVIEW_TEXT в которых совпадет со значением поля title таблицы 1. Поместить, само собой, нужно в соответствующие строки.

Ломал голову два дня, перечитал кучу форумов, может кто сможет помочь, буду очень благодарен!
Во вложении краткий пример, в настоящих таблицах строк намного больше, 2500 в первой, и 500 во второй.

economist

То есть нужно в Таблицу 1 - добавить столбцы из Таблицы 2, при условии что

IE_PREVIEW_TEXT = title

Тогда это простейшая функция =ВПР() или =VLOOKUP(). Её нужно научиться использовать, это азы эл. таблиц, САМАЯ важная функция. Важно понимать что таблицы должны быть в чем-то уникальны. Смущает что в примере 1<2, а в описании наоборот 1>2 (2500>500). Где будут неуникальные: title или IE_PREVIEW_TEXT?


Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Shrain

Цитата: economist от 13 июня 2017, 17:18
То есть нужно в Таблицу 1 - добавить столбцы из Таблицы 2, при условии что

IE_PREVIEW_TEXT = title

Тогда это простейшая функция =ВПР() или =VLOOKUP(). Её нужно научиться использовать, это азы эл. таблиц, САМАЯ важная функция. Важно понимать что таблицы должны быть в чем-то уникальны. Смущает что в примере 1<2, а в описании наоборот 1>2 (2500>500). Где будут неуникальные: title или IE_PREVIEW_TEXT?



Прошу прощения, ошибочка вышла. Действительно в первой таблице будет около 500 строк, а во второй - 1500 (1<2). Уникальны все строки. Просто первая таблица это только некоторые товары из каталога, а вторая таблица - весь каталог. Нужно найти вто второй таблице такие же товары, как в перовой и сопоставить их.

Цитата: economist от 13 июня 2017, 15:18Тогда это простейшая функция =ВПР() или =VLOOKUP(). Её нужно научиться использовать, это азы эл. таблиц, САМАЯ важная функция.
А можно пример использования? Мне просто встречались только с проверками "соответствует/не соответствует", а как сделать, чтобы он сам сопоставлял строки никак не допру ???

economist

См. пример. Пара моментов:

1) Когда "крыжат" две таблицы - удобно когда 1-й, самый левый столбец в обеих - как раз тот самый, по которым ищут совпадения. Поэтому 2-ю таблицы я дополнил копией столбца D

2) Функция ВПР/VLOOKUP может возвращать любой столбец по найденной строке, по его номеру. Но можно без номера, если столбцы идут подряд, в нужном порядке (иногда можно и переставить вручную). Тогда вместо вручную вписываемых 1,2,3... - можно написать функцию СТОЛБЕЦ-N (COLUMN-N), где N-число, дающее нужное смещение до 1,2,3... В итоге для вашей задачи можно написать ОДНУ формулу для всей таблицы, протянуть вниз и вправо и получить нужное!

=ВПР($B15;$Таблица2.$A$2:$E$16;СТОЛБЕЦ()-4;0)


3) На порядок вырастает скорость работы, если придумать краткие русские псевдонимы непонятным словам в заголовках.

Изучите пример, он вам пригодится! Русские названия функций, как в Excel - появились в LibreOffice 5.2 благодаря данному форуму и его активистам. Что бы там ни говорили, учить на русском - быстрее и долговечнее.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Shrain

Цитата: economist от 14 июня 2017, 06:46Изучите пример, он вам пригодится!

Спасибо большое! Очевидно, что решение рабочее. Буду пробовать на полных таблицах.