2014-09-04 3 views
16

Я работаю над проблемой excel, мне нужно найти ответ, поясню ниже.Объединить две таблицы Excel На основе совпадающих данных в столбцах

Я Table01 с Колонный:

  • № группы
  • Имя
  • Цена

Я Table02 с колоннами:

  • Group Нет
  • Город
  • Код

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

Но, как вы видите, группа No Column похожа на обе таблицы.

Что мне нужно, чтобы получить соответствующие строки таблицы01 & 02 с учетом столбца «Нет группы».

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

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

The Image

Спасибо!

+0

конвертировать оба в таблицы и использовать функции совпадения и индекса. –

ответ

27

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

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

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

копию поперек и вниз.

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

enter image description here

+0

Спасибо за ответ. Но не могли бы вы объяснить это немного больше @teylyn –

+0

, к которому я должен написать эту функцию? Teylyn –

+5

Пожалуйста, прочитайте. Я не могу вам помочь, если вы не читаете. – teylyn

9

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

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

  • Лист1: полные данные 2014
  • Лист2: обновленные строки для 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 и т. Д. До тех пор, пока не будет достигнута полная ширина моей таблицы. Из-за -signs $ используется, это дает следующую формулу-й в ячейках 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, область поиска является постоянной, а входные данные используются из текущей строки.

Смежные вопросы