Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(1, 1)) Is Nothing Then
Columns.Hidden = False
If Target.Value = "" Then Exit Sub
For i = Cells(2, Columns.Count).End(xlToLeft).Column To 2 Step -1
If Cells(2, i).Value <> Target.Value Then Columns(i).Hidden = True
Next i
End If
End Sub