ExcelのVLOOKUP関数で該当する複数の値を抽出したい

Microsoft Excelで、ExcelのVLOOKUP関数で該当する複数の値を抽出したいと思ったことはありませんか?VLOOKUP関数では検索値の1番目のみしか取得できませんが、他の関数を用いて複数の該当値を取得することができるようになります。この記事では、ExcelのVLOOKUP関数で該当する複数の値を抽出する方法をご紹介していきます。
ExcelのVLOOKUP関数で該当する複数の値を抽出する方法















VBAを使用してVLOOKUP関数で該当する複数の値を抽出する

VBAを使用して、上記の操作を簡単に行う方法もありますよ。VBAを使用するには「開発」タブを有効にしましょう。Excelを起動して、ウィンドウ左上の「ファイル」タブをクリックしましょう。

ホーム画面が表示されるので、左側メニュー最下部にある「オプション」をクリックしましょう。

「Excelのオプション」ウィンドウが表示されます。左側メニューの「リボンのユーザー設定」をクリックして「リボンをカスタマイズします。」の「リボンのユーザー設定」の一覧から、「開発」のチェックボックスをクリックして有効にしてから「OK」をクリックしましょう。これで、開発タブが有効になります。

Excelに戻ったら「開発」タブをクリックしてリボンメニューを開き、「コード」項目の「Visual Basic」をクリックしましょう。

Sub 複数の検索結果を出力する()
Dim strTemp As Variant
Dim i As Integer
Dim k As Integer
'出力開始行数指定
k = 2
'検索値を取得します。
strSerchKey = Range("E2").Value
'出力セルの値のみをクリアします。
'https://extan.jp/?p=3525#%E3%82%BB%E3%83%AB%E3%81%AE%E5%80%A4%E3%81%AE%E3%81%BF%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B
Range("F2:G7").ClearContents
'処理対象のセルをレンジ指定します。
strTemp = Range("A2:B13")
'配列に格納された値すべてを対象に処理します。
For i = LBound(strTemp, 1) To UBound(strTemp, 1)
If strTemp(i, 1) = strSerchKey Then
Cells(k, 7) = strTemp(i, 2)
Cells(k, 6) = k - 1 & "番目"
k = k + 1
End If
Next
End Sub