Se alguém souber como obter o resultado desejado usando fórmulas de matriz, informe-nos. Eu não acho que é possível ... Por isso eu uso o VBA. Esta é a minha solução codificada (UDF):
Option Explicit
Function Results(cell As Range, table_1 As Range, table_2 As Range) As String
Dim aTable1() As Variant
Dim aTable2() As Variant
aTable1 = table_1.Value
aTable2 = table_2.Value
Dim i As Long, j As Long 'counters
For i = 1 To UBound(aTable1, 1)
If aTable1(i, 1) = cell.Value Then
For j = 1 To UBound(aTable2, 1)
If aTable1(i, 2) = aTable2(j, 1) Then
If Not IsEmpty(aTable2(j, 2)) Then
Results = Results & aTable2(j, 1) & " has content, "
Else
Results = Results & aTable2(j, 1) & " has no content, "
End If
End If
Next
If Results = vbNullString Then
Results = aTable1(i, 2) & " NOT FOUND"
GoTo Ending
End If
End If
Next
Results = Left(Results, Len(Results) - 2)
If (Len(Results) - Len(Replace(Results, "has", ""))) / 3 = _
(Len(Results) - Len(Replace(Results, "no", ""))) / 2 Then
Results = "BLANK - " & Results
End If
Ending:
End Function
Este é o resultado que você recebe:
Vocêtambémpodeusarreferênciascomunsdointervalo,ouseja,emI3
eutambémpoderiaterinseridoessafórmula:=Results(H3,B$3:C$13,E$3:F$10)
.
ColeocódigonoEditordoVBA(Alt+F11),nomódulo"Module1" recém-inserido (não nos módulos "ThisWorkbook" ou "Sheet")