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 pożyczkobiorcó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 to, do czego jesteśmy przyzwyczajeni WYSZUKAJ do 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 )
Oznacza to, że aby poprawnie zastąpić kwotę pożyczki nazwiskiem i numerem umowy, w komórce E15 należy wpisać:
=WYSZUKAJ3(2 $A$: 11 $A$ ; A15 ; 2 miliardy dolarów: 11 dolarów miliardów dolarów ; B15 ; $C$2: $C$11 )
Nie zapomnij także o naprawieniu zakresów znakiem dolara ($), abyśmy nie pominęli zakresów podczas kopiowania formuły (w celu szybkiego skorygowania możesz także użyć klawisza F4).