Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Объединение данных двух таблиц - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Объединение данных двух таблиц
Neuro75 Дата: Понедельник, 28.08.2017, 07:08 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
В таблице 1 имеются некие значения (столбец В) ключевого поля (столбец А), например:

...A........B
1 00001 Значение_111
2 00001 Значение_112
3 00001 Значение_113
4 00002 Значение_121
5 00002 Значение_122
...

В таблице 2 этому же ключевому полю (столбец А) присвоены значения из иной области (столбец В), например:

...A........B
1 00001 Значение_211
2 00001 Значение_212
3 00001 Значение_213
4 00002 Значение_221
5 00002 Значение_222
...

Как создать результирующую таблицу, в которой каждому значению ключевого поля из таблицы 1 присвоены все значения этого ключевого поля из таблицы 2, т.е.:

...A........B…………………..C
1 00001 Значение_111 Значение_211
2 00001 Значение_111 Значение_212
3 00001 Значение_111 Значение_213
4 00001 Значение_112 Значение_211
5 00001 Значение_112 Значение_212
6 00001 Значение_112 Значение_213
7 00001 Значение_113 Значение_211
8 00001 Значение_113 Значение_212
9 00001 Значение_113 Значение_213
10 00002 Значение_121 Значение_221
11 00002 Значение_121 Значение_222
12 00002 Значение_122 Значение_221
13 00002 Значение_122 Значение_222

При этом в исходных таблицах количество вхождений ключевого поля в каждой из таблиц 1 и 2 может быть произвольным. Пример объединяемых таблиц выложил на листах 1 и 2 прилагаемого файла.
Способ решения - формулы, макросы и пр. значения не имеет.
Заранее спасибо.
К сообщению приложен файл: 1703368.xls (31.5 Kb)


Сообщение отредактировал Neuro75 - Понедельник, 28.08.2017, 07:09
 
Ответить
СообщениеЗдравствуйте.
В таблице 1 имеются некие значения (столбец В) ключевого поля (столбец А), например:

...A........B
1 00001 Значение_111
2 00001 Значение_112
3 00001 Значение_113
4 00002 Значение_121
5 00002 Значение_122
...

В таблице 2 этому же ключевому полю (столбец А) присвоены значения из иной области (столбец В), например:

...A........B
1 00001 Значение_211
2 00001 Значение_212
3 00001 Значение_213
4 00002 Значение_221
5 00002 Значение_222
...

Как создать результирующую таблицу, в которой каждому значению ключевого поля из таблицы 1 присвоены все значения этого ключевого поля из таблицы 2, т.е.:

...A........B…………………..C
1 00001 Значение_111 Значение_211
2 00001 Значение_111 Значение_212
3 00001 Значение_111 Значение_213
4 00001 Значение_112 Значение_211
5 00001 Значение_112 Значение_212
6 00001 Значение_112 Значение_213
7 00001 Значение_113 Значение_211
8 00001 Значение_113 Значение_212
9 00001 Значение_113 Значение_213
10 00002 Значение_121 Значение_221
11 00002 Значение_121 Значение_222
12 00002 Значение_122 Значение_221
13 00002 Значение_122 Значение_222

При этом в исходных таблицах количество вхождений ключевого поля в каждой из таблиц 1 и 2 может быть произвольным. Пример объединяемых таблиц выложил на листах 1 и 2 прилагаемого файла.
Способ решения - формулы, макросы и пр. значения не имеет.
Заранее спасибо.

Автор - Neuro75
Дата добавления - 28.08.2017 в 07:08
sboy Дата: Понедельник, 28.08.2017, 09:17 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Так тут стандартный впр вроде подходит...
Код
=ВПР(A2;Лист1!$A$2:$B$25;2;)
К сообщению приложен файл: 6787415.xls (38.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Так тут стандартный впр вроде подходит...
Код
=ВПР(A2;Лист1!$A$2:$B$25;2;)

Автор - sboy
Дата добавления - 28.08.2017 в 09:17
AlexM Дата: Понедельник, 28.08.2017, 10:12 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Neuro75, Когда задаете один вопрос на разных форумах, об этом надо сообщать. Показывать ссылку или ссылки.
Кросс



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеNeuro75, Когда задаете один вопрос на разных форумах, об этом надо сообщать. Показывать ссылку или ссылки.
Кросс

Автор - AlexM
Дата добавления - 28.08.2017 в 10:12
Neuro75 Дата: Понедельник, 28.08.2017, 10:52 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Neuro75, Когда задаете один вопрос на разных форумах, об этом надо сообщать. Показывать ссылку или ссылки.

Не знал, учту.

Так тут стандартный впр вроде подходит...

В том то и дело, что не подходит в связи с тем что в обоих таблицах число вхождений ключевого поля произвольно. А стандартный ВПР мне выдаст только первые вхождения. Ну, если еще отсортировать в обратную сторону, то и последние. А число вхождений одного поля может быть 50-100 в каждой таблице.
В примере просто кусок таблицы, на самом деле они примерно по 40000 строк/20 столбцов каждая.
 
Ответить
Сообщение
Neuro75, Когда задаете один вопрос на разных форумах, об этом надо сообщать. Показывать ссылку или ссылки.

Не знал, учту.

Так тут стандартный впр вроде подходит...

В том то и дело, что не подходит в связи с тем что в обоих таблицах число вхождений ключевого поля произвольно. А стандартный ВПР мне выдаст только первые вхождения. Ну, если еще отсортировать в обратную сторону, то и последние. А число вхождений одного поля может быть 50-100 в каждой таблице.
В примере просто кусок таблицы, на самом деле они примерно по 40000 строк/20 столбцов каждая.

Автор - Neuro75
Дата добавления - 28.08.2017 в 10:52
sboy Дата: Понедельник, 28.08.2017, 11:13 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
ВПР мне выдаст только первые вхождения

Согласен, не внимательно посмотрел.
Как вариант, подтянуть все значения рядом по столбцам
Код
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$B$2:$B$25;АГРЕГАТ(15;6;(СТРОКА(Лист1!$A$2:$A$25)-1)/(Лист1!$A$2:$A$25=$A2);СТОЛБЕЦ(A1)));"")

Будет лучше, если пример будет со всеми столбцами
на самом деле они примерно по 40000 строк/20 столбцов каждая
К сообщению приложен файл: 1264355.xls (89.5 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
ВПР мне выдаст только первые вхождения

Согласен, не внимательно посмотрел.
Как вариант, подтянуть все значения рядом по столбцам
Код
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$B$2:$B$25;АГРЕГАТ(15;6;(СТРОКА(Лист1!$A$2:$A$25)-1)/(Лист1!$A$2:$A$25=$A2);СТОЛБЕЦ(A1)));"")

Будет лучше, если пример будет со всеми столбцами
на самом деле они примерно по 40000 строк/20 столбцов каждая

Автор - sboy
Дата добавления - 28.08.2017 в 11:13
TimSha Дата: Понедельник, 28.08.2017, 11:17 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
В том то и дело, что

... желательно вникать в свою же хотелку глыбже, формулировать и показывать желаемое четче и нагляднее.
Для начала с листом 1 разберитесь - должны быть уникальные сочетания двух полей. А далее - дело техники, однако... ;)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
Сообщение
В том то и дело, что

... желательно вникать в свою же хотелку глыбже, формулировать и показывать желаемое четче и нагляднее.
Для начала с листом 1 разберитесь - должны быть уникальные сочетания двух полей. А далее - дело техники, однако... ;)

Автор - TimSha
Дата добавления - 28.08.2017 в 11:17
Neuro75 Дата: Понедельник, 28.08.2017, 12:04 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Как вариант, подтянуть все значения рядом по столбцам
[Перевод / Translate]
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$B$2:$B$25;АГРЕГАТ(15;6;(СТРОКА(Лист1!$A$2:$A$25)-1)/(Лист1!$A$2:$A$25=$A2);СТОЛБЕЦ(A1)));"")


Интересное решение, положил его в свою копилку.
Но мне надо именно по строкам, а в данном случае потом нужно будет как-то вытаскивать данные из получившихся столбцов.
Решил задачу наполовину при помощи метода, подсказанного мне ранее уважаемым AlexM тут, а именно, в одной из таблиц свел все имеющиеся у каждого ключевого поля варианты в одну ячейку с разделителем " | ", потом при помощи ВПР свел две таблицы в одну.
В результате задача, как мне кажется несколько упростилась, а именно - имеем одну таблицу из двух столбцов. В одном - уникальное значение, в другом - все сопоставляемые с ним значения через разделитель.
Из нее запросто можно через "Текст по столбцам" получить эти значения в столбцах (как предлагалось вами в цитируемой формуле).
Т.е. таблица вида:
Ключ Значение 1 | Значение 2 | .... | Значение N
Как бы из нее получить таблицу вида:
Ключ Значение 1
Ключ Значение 2
....
Ключ Значение N
Первые тридцать строк получившейся таблицы прилагаю в файле.
К сообщению приложен файл: 9904072.xls (34.5 Kb)
 
Ответить
Сообщение
Как вариант, подтянуть все значения рядом по столбцам
[Перевод / Translate]
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$B$2:$B$25;АГРЕГАТ(15;6;(СТРОКА(Лист1!$A$2:$A$25)-1)/(Лист1!$A$2:$A$25=$A2);СТОЛБЕЦ(A1)));"")


Интересное решение, положил его в свою копилку.
Но мне надо именно по строкам, а в данном случае потом нужно будет как-то вытаскивать данные из получившихся столбцов.
Решил задачу наполовину при помощи метода, подсказанного мне ранее уважаемым AlexM тут, а именно, в одной из таблиц свел все имеющиеся у каждого ключевого поля варианты в одну ячейку с разделителем " | ", потом при помощи ВПР свел две таблицы в одну.
В результате задача, как мне кажется несколько упростилась, а именно - имеем одну таблицу из двух столбцов. В одном - уникальное значение, в другом - все сопоставляемые с ним значения через разделитель.
Из нее запросто можно через "Текст по столбцам" получить эти значения в столбцах (как предлагалось вами в цитируемой формуле).
Т.е. таблица вида:
Ключ Значение 1 | Значение 2 | .... | Значение N
Как бы из нее получить таблицу вида:
Ключ Значение 1
Ключ Значение 2
....
Ключ Значение N
Первые тридцать строк получившейся таблицы прилагаю в файле.

Автор - Neuro75
Дата добавления - 28.08.2017 в 12:04
Neuro75 Дата: Понедельник, 28.08.2017, 12:07 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
... желательно вникать в свою же хотелку глыбже, формулировать и показывать желаемое четче и нагляднее.
Для начала с листом 1 разберитесь - должны быть уникальные сочетания двух полей. А далее - дело техники, однако...


Согласен, в стремлении сделать файл проще выбрал сокращенный столбец, значения в котором оказались не уникальными. В реальном файле он содержит также модель и год, что делает его длинее, но уникальным. Просто не хотел забивать файл примера. Уже исправил, реальные значения в файле приложенном к предыдущему сообщению.
 
Ответить
Сообщение
... желательно вникать в свою же хотелку глыбже, формулировать и показывать желаемое четче и нагляднее.
Для начала с листом 1 разберитесь - должны быть уникальные сочетания двух полей. А далее - дело техники, однако...


Согласен, в стремлении сделать файл проще выбрал сокращенный столбец, значения в котором оказались не уникальными. В реальном файле он содержит также модель и год, что делает его длинее, но уникальным. Просто не хотел забивать файл примера. Уже исправил, реальные значения в файле приложенном к предыдущему сообщению.

Автор - Neuro75
Дата добавления - 28.08.2017 в 12:07
sboy Дата: Понедельник, 28.08.2017, 14:09 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Вопрос к модераторам: помогаем или новая тема? т.к. вопрос немного трансформировался и уже не соответствует названию темы


Яндекс: 410016850021169
 
Ответить
СообщениеВопрос к модераторам: помогаем или новая тема? т.к. вопрос немного трансформировался и уже не соответствует названию темы

Автор - sboy
Дата добавления - 28.08.2017 в 14:09
AndreTM Дата: Понедельник, 28.08.2017, 19:03 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
На самом деле вы решаете стандартную задачу на соединение таблиц со связью "один-ко-многим" (о, даже "многие-ко-многим" на самом деле, натуральный FULL OUTER JOIN)

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

Возьмём PowerQuery, и-и-и-... :)
К сообщению приложен файл: 2-35067-1.xlsx (26.0 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 28.08.2017, 19:52
 
Ответить
СообщениеНа самом деле вы решаете стандартную задачу на соединение таблиц со связью "один-ко-многим" (о, даже "многие-ко-многим" на самом деле, натуральный FULL OUTER JOIN)

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

Возьмём PowerQuery, и-и-и-... :)

Автор - AndreTM
Дата добавления - 28.08.2017 в 19:03
Pelena Дата: Понедельник, 28.08.2017, 19:05 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19508
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Вопрос к модераторам: помогаем или новая тема?

Предложите другое название темы, которое соответствует


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Вопрос к модераторам: помогаем или новая тема?

Предложите другое название темы, которое соответствует

Автор - Pelena
Дата добавления - 28.08.2017 в 19:05
Neuro75 Дата: Вторник, 29.08.2017, 07:34 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Возьмём PowerQuery, и-и-и-...

Приложенный результат впечатлил. О PowerQuery раньше не слышал, пошел разбираться.
 
Ответить
Сообщение
Возьмём PowerQuery, и-и-и-...

Приложенный результат впечатлил. О PowerQuery раньше не слышал, пошел разбираться.

Автор - Neuro75
Дата добавления - 29.08.2017 в 07:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!