Notifications
Clear all

Formula Excel

11 Posts
3 Usuários
0 Reactions
1,686 Visualizações
(@claudir)
Posts: 0
New Member
Topic starter
 

Boa tarde ...estou necessitando de uma formula que verifique na Plan Desembolso ( de B3 à B25) e compare com a Plan Auxiliar (A 8 A A20) os dados diferentes e copie para a célula B27 da Plan Desembolso esses dados diferentes.

 
Postado : 24/02/2015 11:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Regras do forum:

Upload
Devido a ultrapassagem da marca de 1,5Gb de armazenamento de arquivos na hospedagem do Planilhando, limitaremos o tamanho de cada arquivo para 2Mb sendo obrigatório o uso dos formatos .zip - .rar - .ice visto a gratuidade e não geração de recursos para bancar o site.

Assim sendo, o anexo de 4MB deste tópico foi removido.

Por favor leia as regras (link na minha assinatura), e passe a compactar todos os seus anexos.

Obrigado,

Fernando

 
Postado : 24/02/2015 12:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tomei a liberdade de reduzir o tamanho do seu arquivo de 4MB para 30KB.

Assim, o reanexei ao seu tópico, sua msg.

 
Postado : 24/02/2015 12:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Veja em anexo se é isso!

Att

 
Postado : 24/02/2015 1:06 pm
(@issamu)
Posts: 0
New Member
 

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

 
Postado : 24/02/2015 1:12 pm
(@claudir)
Posts: 0
New Member
Topic starter
 

Boa tarde!!!

Veja em anexo se é isso!

Att

Ola....Alexandre....isso mesmo...só que necessito que retorne os dados diferentes da PLAN Auxiliar....em relação à PLan Desembolso.....pode ser???

 
Postado : 24/02/2015 1:35 pm
(@issamu)
Posts: 0
New Member
 

Boa tarde!!!

Veja em anexo se é isso!

Att

Ola....Alexandre....isso mesmo...só que necessito que retorne os dados diferentes da PLAN Auxiliar....em relação à PLan Desembolso.....pode ser???

Se você pode gerar uma lista abaixo da sua tabela, então pode aplicar a fórmula matricial (CTRL+SHIFT+ENTER) na célula B27 e arrastar para baixo 23 linhas:

=SEERRO(MENOR(SE(CONT.SE(AUXILIAR!$A$8:$A$20;'PLS e Desembolso'!$B$3:$B$25);"";'PLS e Desembolso'!$B$3:$B$25);LIN(A1));"")

Essa fórmula vai funcionar apenas para analisar números.

Em todo caso, a solução que propus em VBA me parece mais interessante, já analisou ela?

 
Postado : 24/02/2015 1:44 pm
(@claudir)
Posts: 0
New Member
Topic starter
 

Ola Issamu,

Estou analisando ....no primeiro momento não consegui..mas amanhã te retorno.....

 
Postado : 24/02/2015 2:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boat arde!!

Essa é uma formula matricial só vai surtir efeito se usar as teclas Ctrl+Shiftl+ Enter

=SEERRO(ÍNDICE($B$3:$B$25;MENOR(SE(ÉERROS(CORRESP($B$3:$B$25;AUXILIAR!$A$8:$A$20;0));(LIN($B$3:$B$25)-MÍNIMO(LIN($B$3:$B$25))+1);"");LIN(1:1)));"")

Att

 
Postado : 24/02/2015 2:08 pm
(@claudir)
Posts: 0
New Member
Topic starter
 

Olá Alexandre a fórmula funcionou .......o que está me retornando são os diferentes da Plan Desembolso com relação à Plan Auxiliar....e o que eu necessito são é exatamente o contrário.... os que constam na Plan Auxiliar mas não constam na Plan Desembolso.

 
Postado : 25/02/2015 10:32 am
(@claudir)
Posts: 0
New Member
Topic starter
 

Obrigado pela ajuda resolvido pelas sugestões ....

 
Postado : 01/04/2015 1:01 pm