この記事を読んでできるようになること
- 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)
コメント
こんにちは、これはコメントです。
コメントの承認、編集、削除を始めるにはダッシュボードの「コメント」画面にアクセスしてください。
コメントのアバターは「Gravatar」から取得されます。