業務でよく使うのでシェア。
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