Предположим, что нам нужно соединить две таблицы, но у нас нет уникальных значений:
Как видим, у нас есть заемщики с одинаковыми фамилиями и кредитные соглашения с одинаковыми номерами. Соединить обычной функцией VLOOKUP будет проблематично, поскольку она объединяет лишь по одному условию и только первое найденное значение.
Переделаем привычный нам VLOOKUP для подстановки значений по двум условиям.
Откройте меню Сервис - Макрос - Редактор Visual Basic , вставьте новый модуль (меню Insert - Module ) и скопируйте туда текст этой функции:
Function VLOOKUP3(Table1 As Range, SearchValue1 As Variant, Table2 As Range, SearchValue2 As Variant, ResultColumn As Range) Dim i As Integer For i = 1 To Table1.Rows.Count If Table1.Cells(i, 1) = SearchValue1 Then If Table2.Cells(i, 1) = SearchValue2 Then VLOOKUP3 = ResultColumn.Cells(i, 1) Exit For End If End If Next i End Function
Закройте редактор Visual Basic и вернитесь в Excel. P>
Теперь в Мастер функций в категории Определены пользователем можно найти нашу функцию VLOOKUP3 и воспользоваться ею. синтаксис функции следующий:
= VLOOKUP3 (диапазон1; искомое_значение1; диапазон2; искомое_значение2; диапазон с которого подставляем значения)
То есть для того, чтобы правильно подставить сумму кредита по фамилии и номера соглашения, в ячейку E15 нужно ввести:
=VLOOKUP3($A$2:$A$11;A18;$B$2:$B$11;B18;$C$2:$C$11)
Также, не забываем фиксировать диапазоны знаком доллара ($) , для того чтобы нам не съезжали диапазоны при копировании формулы (для быстрого фиксирования можно воспользоваться клавишей F4).