Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Ноябрь 2017, 23:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Объединить две таблицы с разными полями, чтобы строки совпали по значениям  (Прочитано 664 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shrain
Новичок
*
Offline Offline

Сообщений: 3


« Стартовое сообщение: 13 Июнь 2017, 16:45 »

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

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

Если подробнее, то:
В таблице 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 во второй.

* Пример.ods (17.12 Кб - загружено 5 раз.)
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 739


« Ответ #1: 13 Июнь 2017, 17:18 »

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

IE_PREVIEW_TEXT = title

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


Записан

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

Сообщений: 3


« Ответ #2: 13 Июнь 2017, 19:42 »

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

IE_PREVIEW_TEXT = title

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



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

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

Сообщений: 739


« Ответ #3: 14 Июнь 2017, 08:46 »

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

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 благодаря данному форуму и его активистам. Что бы там ни говорили, учить на русском - быстрее и долговечнее.

* Пример функции ВПР VLOOKUP.ods (20.44 Кб - загружено 10 раз.)
« Последнее редактирование: 14 Июнь 2017, 08:52 от economist » Записан

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

Сообщений: 3


« Ответ #4: 14 Июнь 2017, 12:54 »

Изучите пример, он вам пригодится!

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

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!