Private Sub Worksheet_Change(ByVal Target As Range) Dim arr, i%, k%, d Set d = CreateObject("scripting.Dictionary") arr = Range("a1:k9") If Target.Count > 1 Then End If Target.Address = "$A$12" Or Target.Address = "$B$12" Then If Len([b12]) And Len([a12]) Then For i = 2 To UBound(arr) For k = 2 To UBound(arr, 2) d(arr(1, k) & arr(i, 1)) = arr(i, k) Next Next End If End If Application.EnableEvents = False [c12] = d([a12].Value) & d([b12].Value) Application.EnableEvents = True Set d = Nothing End Sub