【Excel】vlookupで条件に該当する値が複数あった場合

この記事を読んでできるようになること

  • vlookupで条件に該当する複数あった場合、条件に該当するすべての値を一つのセルに記載する

実現方法

  • VBAを使用する(※vlookup関数は使用しない)

VBAのコード

1 VBAでvlookup_all関数を作成する。

  • 引数は、通常のvlookup関数と同様の値を受け取る。
  • 取得した値を配列に格納する。
  • 配列の値を結合して、一つのセルに入れる。
Function vlookup_all(lookup_value As Variant, table_array As Range, col_index_num As Integer) As String
    Dim result() As String
    Dim i As Long
    Dim j As Long
    Dim k As Long
    
    k = 0
    For i = 1 To table_array.Rows.Count
        If table_array.Cells(i, 1).Value = lookup_value Then
            ReDim Preserve result(k)
            result(k) = table_array.Cells(i, col_index_num).Value
            k = k + 1
        End If
    Next i
    
    If IsArray(result) Then
        vlookup_all = Join(result, ", ")
    Else
        vlookup_all = ""
    End If
End Function

2 作成した関数を、関数の結果の値を入れたいセルに書き込む。以下、関数の記載方法。

=vlookup_all(lookup_value, table_array, col_index_num)

コメント

  1. こんにちは、これはコメントです。
    コメントの承認、編集、削除を始めるにはダッシュボードの「コメント」画面にアクセスしてください。
    コメントのアバターは「Gravatar」から取得されます。

タイトルとURLをコピーしました