Слияние двух таблиц Excel. На основе совпадающих данных в столбцах
Я работаю над проблемой excel, мне нужно найти ответ, потому что я объясню это ниже.
У меня есть таблица01 с колонками:
У меня Table02 со столбцами:
Я объединил две таблицы 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 область поиска является постоянной, но входные данные используются из текущей строки.