TOP

2 つの条件に従った組み合わせの VLOOKUP (VLOOKUP3)

説明

関数 VLOOKUP - VLOOKUP3 の改良版を考えてみましょう。これにより、2 つの条件が一致した場合に値を置換する機会が得られます。この関数は、組み合わせを実行する必要があるフィールドに一意の値がない場合に役立ちます。


問題の例

2 つのテーブルを結合する必要があるが、一意の値がないとします。

ご覧のとおり、同じ姓の借り手と同じ番号のローン契約が存在します。通常の機能と組み合わせる VLOOKUP 一度に 1 つの条件のみと一致し、最初に見つかった値のみに一致するため、問題が発生します。

慣れ親しんだことをやり直しましょう VLOOKUP 2 つの条件に従って値を置換します。

VBA 関数のコード VLOOKUP3

メニューを開く サービス - マクロ - エディター Visual Basic 新しいモジュールを挿入します (メニュー Insert - Module )このテキストをそこにコピーします 機能:

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 

Visual Basic エディタを閉じて、Excel に戻ります。

機能の使用

関数ウィザード カテゴリ内で ユーザー定義の VLOOKUP3 関数を見つけて使用してください。関数の構文は次のとおりです。

=VLOOKUP3(範囲1 ; 検索値1 ; 範囲2 ; 検索値2 ; 値を代入する範囲 )

つまり、ローン金額を姓と契約番号で正しく置き換えるには、セル E15 に次のように入力する必要があります。

=VLOOKUP3($A$2:$A$11 ; A15 ; $B$2:$B$11 ; B15 ; $C$2:$C$11 )

また、数式をコピーするときに範囲を見逃さないように、ドル記号 ($) を使用して範囲を固定することを忘れないでください (すばやく修正するには、F4 キーを使用することもできます)。

トピックに関する記事: