Já que postou no fórum de VBA, vou propor uma solução via VBA. Crie uma UDF com o seguinte código:
Public Function VALORESDOVETOR(vArray As Variant, _
Optional lSize As Long, _
Optional sSeparator As String = ", ") As Variant
Dim v As Variant
Dim lCount As Long
Dim asOut() As String
If lSize < 0 Then
VALORESDOVETOR = CVErr(xlErrNum)
Exit Function
End If
For Each v In vArray
If v <> "" Then
lCount = lCount + 1
ReDim Preserve asOut(1 To lCount)
asOut(lCount) = v
If lCount = lSize Then Exit For
End If
Next v
VALORESDOVETOR = Join(asOut, sSeparator)
End Function
Essa UDF chamada VALORESDOVETOR possui 3 argumentos, sendo:
1º argumento: é o vetor de análise, que pode ser um intervalo ou o resultado de uma fórmula matricial.
2º argumento: é opcional e é a quantidade de valores do vetor que deseja trazer, se não for colocado trará todos valores do vetor.
3º argumento: é opcional e é a definição do separador, que se não for definido ficará como padrão a vírgula.
Após a criação desta UDF, a fórmula em C2 na sua planilha ficará:
=VALORESDOVETOR(SE($A$2:$A$7=A2;$B$2:$B$7;"");;" - ")
Só que essa fórmula é matricial, então deve ser inserida com CRTL+SHIFT+ENTER.
Teste ai e qualquer dúvida pergunte aqui.
Abraços!
Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/
Postado : 03/06/2015 8:50 am