Eu não acho que haja uma maneira fácil de fazer isso com as fórmulas existentes do Excel. O problema é duplo. Em primeiro lugar, AFAIK não há nenhuma função do Excel que irá dizer se uma célula faz parte de um intervalo mesclado. Em segundo lugar, o valor mostrado em uma combinação mesclada é, na verdade, apenas na primeira célula do intervalo mesclado.
Se você estiver disposto a usar o VBA para criar uma função personalizada, isso poderá ser feito facilmente com uma combinação da função Match
e o fato de que os objetos Range saberão se eles fazem parte de um intervalo mesclado.
Public Function VLookupMerge(lookup_value As Variant, table_array As Range, col_index As Long) As Variant
Dim sMatchFormula As String
Dim row_index As Variant
Dim r As Range
sMatchFormula = "=MATCH(" & lookup_value _
& "," & table_array.Columns(1).Address(External:=True) _
& ",0)"
row_index = Application.Evaluate(sMatchFormula)
If TypeName(row_index) = "Error" Then
VLookupMerge = row_index
Else
Set r = table_array.Cells(row_index, col_index)
VLookupMerge = r.MergeArea.Range("A1")
Set r = Nothing
End If
End Function