Слияние двух таблиц Excel. На основе совпадающих данных в столбцах

Я работаю над проблемой excel, мне нужно найти ответ, потому что я объясню это ниже.

У меня есть таблица01 с колонками:

  • Group No
  • Имя
  • Цена

У меня Table02 со столбцами:

  • Group No
  • Город
  • Код

Я объединил две таблицы Table01 и Table02, как показано в Image03, но без порядка.

Но, как вы видите, столбец Group No похож в обеих таблицах.

Мне нужно получить совпадающие строки таблицы01 и 02 с учетом столбца Group No.

Конечный результат следует рассматривать как окончательное изображение.

Есть ли способ сделать это с помощью функций excel?

The Image

Спасибо!

Ответы

Ответ 1

Поместите таблицу во второе изображение на Sheet2, столбцы D в F.

В Sheet1 ячейка D2 использует формулу

=iferror(vlookup($A2,Sheet2!$D$1:$F$100,column(A1),false),"")

копировать взад и вперед.

Изменить: вот изображение. Данные находятся в двух листах. На Sheet1 введите формулу в ячейку D2. Затем скопируйте формулу в F2, а затем опустите столько строк, сколько вам нужно.

enter image description here

Ответ 2

Ответ Тейлин работал отлично для меня, но мне пришлось немного изменить его, чтобы получить правильные результаты. Я хочу предоставить расширенное объяснение тому, кому это понадобится.

Моя настройка была следующей:

  • Лист1: полные данные 2014 года
  • Sheet2: обновленные строки для 2015 года в формате A1: D50, отсортировано по первому столбцу.
  • Лист3: объединенные строки
  • У моих данных нет строки заголовка

Я положил следующую формулу в ячейку A1 листа 3:

=iferror(vlookup(Sheet1!A$1;Sheet2!$A$1:$D$50;column(A1);false);Sheet1!A1)

Прочитайте это следующим образом: возьмите значение первого столбца в Sheet1 (старые данные). Посмотрите в Sheet2 (обновленные строки). Если присутствует, выведите значение из указанного столбца в Sheet2. При ошибке выведите значение для текущего столбца Sheet1.

Примечания:

  • В моей версии формулы ";" используется как разделитель параметров вместо "," . Это потому, что я нахожусь в Европе, и мы используем "," как десятичный разделитель. Изменить ";" вернуться к "," если вы живете в стране, где "." является десятичным разделителем.

  • A $1: означает, что всегда нужно брать столбец 1 при копировании формулы в ячейку в другом столбце. $A $1 означает: всегда принимать точную ячейку A1 даже при копировании формулы в другую строку или столбец.

После вставки формулы в A1 я расширил диапазон до столбцов B, C и т.д. до тех пор, пока не будет достигнута полная ширина моей таблицы. Из-за используемых $-значений это дает следующую формулу в ячейках B1, C1 и т.д.:

=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(B1);FALSE);'Sheet1'!B1)
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(C1);FALSE);'Sheet1'!C1)

и так далее. Обратите внимание, что поиск по-прежнему выполняется в первом столбце. Это связано с тем, что VLOOKUP требует, чтобы данные поиска сортировались в столбце, где выполняется поиск. Выходной столбец - это, однако, столбец, в который вставляется формула.

Затем выберите прямоугольник в Листе 3, начиная с A1 и имеющего размер данных в Sheet1 (такое же количество строк и столбцов). Нажмите Ctrl-D, чтобы скопировать формулы первой строки во все выбранные ячейки.

Клетки A2, A3 и т.д. получат следующие формулы:

=IFERROR(VLOOKUP('Sheet1'!$A2;'Sheet2'!$A$1:$D$50;COLUMN(A2);FALSE);'Sheet1'!A2)
=IFERROR(VLOOKUP('Sheet1'!$A3;'Sheet2'!$A$1:$D$50;COLUMN(A3);FALSE);'Sheet1'!A3)

Из-за использования $-signs область поиска является постоянной, но входные данные используются из текущей строки.