ответ 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, область поиска является постоянной, а входные данные используются из текущей строки.
конвертировать оба в таблицы и использовать функции совпадения и индекса. –