Есть два листа Excel, над которыми я работаю. Первый состоит из 300 наименований программ, по одной в каждой строке, и с 2 дополнительными столбцами с номерами версий и дополнительной информацией. Второй очень похож, но имеет около 100 строк и имеет 2 столбца с информацией, отличной от первой.

пример:

Adobe Premiere, 6.0.2, программное обеспечение для редактирования видео

Около 50 из этих программ совпадают по имени (они оба указаны на листе 1 и 2), и я хотел бы импортировать дополнительную информацию обо всех соответствующих программах из листа 2 на лист один, рядом с существующей информацией. Это будет означать, что около 50 строк имеют 2 дополнительных столбца и что около половины листа 2 не имеет соответствия.

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

Любая помощь приветствуется.

2 ответа2

2

Вы можете добиться того, что вам требуется, используя комбинацию VLOOKUP и IFERROR Введите следующую формулу в первом листе и заменить название второй книги и листа:

=IFERROR(VLOOKUP(A2,'[Workbook2Name.xlsx]Sheetname'!$A:$C,2,0),"")

Это должно вернуть вам второй столбец соответствующей записи (при условии, что данные хранятся в столбцах AC).

0

Хотя я могу неправильно истолковать ваш вопрос, я прочитал его, чтобы означать, что вы хотите вернуть данные из двух столбцов в Sheet2. Если это так, формула @ Питера не будет работать. Это потому, что VLOOKUP будет возвращать данные только из одного столбца.

Следующая формула сделает работу. В иллюстративных целях я предполагаю, что имена программ в Sheet1 начинаются в ячейке A2, а ваши данные в Sheet2 находятся в ячейках G2:I11.

  =IFERROR(OFFSET(Sheet2!$G$2,MATCH(A2,Sheet2!$G$2:$G$11,0)-1,1,1,2),"-")

Это формула массива. Чтобы ввести его, выделите ячейки B2:B3 на листе 1, введите формулу, убедившись, что ввод завершен комбинацией клавиш CONTROL-SHIFT-ENTER. Затем вы должны скопировать его до конца данных на листе 1.

Он работает с помощью MATCH, чтобы найти строку, в которой имя программы в Sheet1 соответствует программе в Sheet2 (относительно первой ячейки данных в Sheet2). Затем он использует OFFSET для возврата соответствующих двух ячеек данных из Sheet2.

Как отмечает @Peter, если второй лист находится в другой рабочей книге, вам нужно будет предварительно добавить ссылки на этот лист с именем рабочей книги, а если у листа есть имя, отличное от имени по умолчанию, вам нужно будет использовать имя листа в формула, в результате чего:

  =IFERROR(OFFSET('[Workbook2Name.xlsx]Sheet2name'!$G$2,MATCH(A2,'[Workbook2Name.xlsx]Sheet2name'!$G$2:$G$11,0)-1,1,1,2),"-").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .