Olá claudir!
Para realizar este tipo de operação de escrever os valores em uma célula só é bastante trabalhoso através de fórmula, pois você terá que criar uma fórmula de análise para cada célula do intervalo B3 à B25 e ir concatenando uma por uma na sua fórmula geral, ficando com essa cara:
=SE(CONT.SE(Auxiliar!$A$8:$A$20;Desembolso!B3);"";Desembolso!B3)&", "&SE(CONT.SE(Auxiliar!$A$8:$A$20;Desembolso!B4);"";Desembolso!B4)& ..mesma fórmula para cada célula em B5 a B24.. &", "&SE(CONT.SE(Auxiliar!$A$8:$A$20;Desembolso!B25);"";Desembolso!B25)
Vai te dar muito trabalho e ficar gigante e dificíl de ajustar caso necessite posteriormente. Por isso, recomendo o uso de uma função personalizada através do VBA. Eu utilizo uma função que atende sua necessidade. A função personalizada VALORESDOVETOR do código abaixo gera a lista de valores dentro de um vetor, que pode ser um vetor calculado matricialmente ou mesmo um intervalo da planilha. Adicione o código em um módulo da planilha para utilizar a função:
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
Após criar essa função, a sua fórmula em B27 ficará:
=VALORESDOVETOR(SE(CONT.SE(Auxiliar!$A$8:$A$20;Desembolso!B3:B25)=0;Desembolso!B3:B25;""))
Só que como a matriz é gerada matricialmente, é necessário entrar a fórmula com CRTL+SHIFT+ENTER.
veja se assim te atende.
Abraços!
Rafael
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 : 24/02/2015 1:12 pm