Rozważmy ulepszoną wersję funkcji VLOOKUP - VLOOKUP3, która daje nam możliwość podstawienia wartości, gdy pasują dwa warunki. Funkcja ta może być przydatna w przypadkach, gdy nie mamy unikalnych wartości w polu, na którym musimy wykonać kombinację.
Załóżmy, że musimy połączyć dwie tabele, ale nie mamy unikalnych wartości:
Jak widać mamy kredytobiorców o tych samych nazwiskach i umowach kredytowych o tych samych numerach. Połącz z normalną funkcją WYSZUKAJ będzie problematyczne, ponieważ pasuje tylko do jednego warunku na raz i tylko do pierwszej znalezionej wartości.
Powtórzmy nasze zwykłe VLOOKUP w celu podstawienia wartości zgodnie z dwoma warunkami.
Otwórz menu Usługa - Makro - Edytor Visual Basic , włóż nowy moduł (menu Insert - Module ) i skopiuj tam tekst tego Funkcje:
Function VLOOKUP3(Table1 As Range, _ SearchValue1 As Variant, _ Table2 As Range, _ SearchValue2 As Variant,_ ResultColumn As Range) 'moonexcel.com.ua 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
Zamknij edytor Visual Basic i wróć do Excel.
Teraz w Kreatorzy funkcji w kategorii Określony przez użytkownika możesz znaleźć naszą funkcję VLOOKUP3 i użyć jej. Składnia funkcji jest następująca:
=WYSZUKAJ3( zakres1 ; przeszukiwana wartość1 ; zasięg2 ; przeszukiwana wartość2 ; zakres, z którego podstawiamy wartości )
To znaczy, aby poprawnie zastąpić kwotę pożyczki nazwiskiem i numerem umowy w komórce E15 będziesz musiał wpisać:
=VLOOKUP3($A$2:$A$11; A15; $B$2:$B$11; B15; $C$2:$C$11)
Nie zapomnij także o naprawieniu zakresów znakiem dolara ($) , abyśmy przy kopiowaniu formuły nie pominęli zakresów (w celu szybkiego skorygowania można także skorzystać z klawisza F4).