LoginSignup
4
6

More than 5 years have passed since last update.

Excelでセルに入力した条件でデータを検索する

Last updated at Posted at 2017-03-10

業務でよく使うのでシェア。
1行目を検索欄として、入力した条件に一致したデータを抽出します。
一覧表やクエリテーブルでもアレンジ可能です。

VBAエディタ→シートに以下を貼り付け

テストデータ.xlsx
'セル変更時
Private Sub Worksheet_Change(ByVal Target As Range)
    '1行目に入力された内容を元にオートフィルタをかける
    '複数セルが編集されている1行目のA~K列以外は対象外
        If Target.Count > 1 Then Exit Sub
        If Target.Row <> 1 Or Target.Column > 11 Then Exit Sub

        If Target.Value = "" Then
            '空白だったらその列の条件を"すべて"にする
            Range("A5").AutoFilter Field:=Target.Column

            ElseIf VarType(Target.Value) = vbString Then
                '空白じゃなかったら部分一致(文字の場合)
                Range("A5").AutoFilter Field:=Target.Column, Criteria1:="=*" & Target.Value & "*"
            ElseIf VarType(Target.Value) = vbDouble Then
                '空白じゃなかったら完全一致(数値の場合)
                Range("A5").AutoFilter Field:=Target.Column, Criteria1:="=" & Target.Value
            Else
        End If
End Sub

こんな表があったとして、
※架空の個人情報です
1.PNG

1行目に文字を入力すると一瞬で抽出します。
キャプチャ2.PNG

もちろん複数条件にも対応しています。
キャプチャ3.PNG

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6