Notifications
Clear all

Retornar ultimo valor de uma coluna para um determinado MÊS

13 Posts
3 Usuários
0 Reactions
3,140 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezados amigos,

Tentei utilizar a solução do tópico "ÚLTIMO VALOR DIGITADO COM BASE EM CRITERIOS" para um caso parecido mas não deu certo.

O fato é que o critério seria o último valor de um determinado mês, segue exemplo do que eu tenho na prática:
A1 B1
01/01/12 2,62
10/01/12 2,93
10/01/12 3,18
15/01/12 3,21
18/01/12 3,21
20/01/12 3,21
21/01/12 3,21
25/01/12 3,21
23/01/12 3,21
27/01/12 3,21
27/01/12 3,21
30/01/12 3,21
30/01/12 3,21
30/01/12 3,21
31/01/12 3,21
31/01/12 3,30 ....
.......

Quero que seja retornado o ultimo valor da coluna B para o mês de janeiro na coluna C, a do mês de fevereiro na D e assim por diante...

Como podemos fazer?

Agradeço antecipadamente a ajuda.
Willian Ramires

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2012 8:40 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Willian,

Boa Tarde!

Com essa função abaixo,você pode ter esse valor em qualquer coluna que quiser ver. Basta você abrir a IDE do VBA (ALT+F11), inserir um módulo e colar o código abaixo nesse módulo. Depois salve tudo, feche a IDE do VBA e volte ao Excel. Na aba Fórmulas do painel do Excel, escolha o botão Inserir Função no painel Biblioteca de Funções e escolha a categoria funções definidas pelo usuário. Pronto! Agora basta você posicionar-se na primeira célula abaixo da coluna que você quer obter o último valor e inserir a função criada.

Function UltimoValor()
    Dim Coluna, UltimaLinha As Integer
    Coluna = ActiveCell.Column
    UltimaLinha = ActiveSheet.Cells(Cells.Rows.Count, Coluna - 1).End(xlUp).Row
    UltimoValor = Cells(UltimaLinha, Coluna).Value
End Function

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/11/2012 10:37 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde Wagner,

Teria como ele me retornar de acordo com um critério definido, ou seja, queria que ela retorna-se o ultimo valor de um mês específico relacionado, sendo que o mês esta registrado na coluna A e o valor na B.

Abraço

willian

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2012 11:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Assumindo que seus dados estejam listados a partir da Linha 2, vá em C2 e faça:

=SE(E(MÊS($A3)<>MÊS($A2);COLS($B2:B2)=MÊS($A3)-1);$B2;""); arraste até a Coluna M.

Depois copie tudo para baixo.

Me avise.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2012 11:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado Matrix

Boa sugestão testei e deu certo em partes, o fato é que cada resultado ocupou a respectiva linha e espalhados e isso irá provocar um uso desnecessário dentro da planilha. O que eu queria é que os valores fossem recuperados num local definido, sem o uso das outras celulas pois alem destes dados tenhos outros.
Segue planilha onde na Planilha Tabela Resultados é a original e que tenho que alimentar os resultados no quadro superior.

Obrigado pela sua ajuda!

Willian

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2012 12:06 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Modifique o código da função para:

Function UltimoValor(Mes As Integer)
    Dim UltimaLinha, i, Linha As Integer
    UltimaLinha = ActiveSheet.Cells(Cells.Rows.Count, 2).End(xlUp).Row
    Linha = 15
    For i = 15 To UltimaLinha
        If Month(Range("A" & i).Value) = Mes Then
            Linha = Linha + 1
        End If
    Next
    Linha = Linha - 1
    UltimoValor = Range("B" & Linha).Value
End Function

Agora a função irá pedir que seja informado o número correspondente ao mês que você deseja.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/11/2012 1:15 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado Wagner,

Fiz conforme sua orientação, deu certo em partes, alguns não retornou o valor certo do respectivo mês e outros deu erro.

Da uma olhada.

Willian

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/11/2012 1:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ok. Você acrescentou uma linha e aí ocorreu o erro.

Veja seu arquivo após correção.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/11/2012 2:31 pm
(@alexinceo)
Posts: 12
Active Member
 

Copiei e colei a funcao que o Morel criou, mas entendi que nao funcionou.

Segue Minha sugestao...

Nao compactei, o arquivo diminuiria apenas 20kb

 
Postado : 07/11/2012 5:55 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Bem... eu testei (está no arquivo enviado) e, para mim, está funcionando.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/11/2012 9:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

...
31/01/12 3,21
31/01/12 3,30 ....
.......

Quero que seja retornado o ultimo valor da coluna B para o mês de janeiro na coluna C, a do mês de fevereiro na D e assim por diante...

Como podemos fazer?

Agradeço antecipadamente a ajuda.
Willian Ramires

Cara,

Da forma que vc postou imaginei que seria em cada interseção linhaxcoluna. Do jeito que vc precisa é bem mais simples e enxuto.

Vide anexo e me avise.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/11/2012 3:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezados amigos

Amigos, fico imaginando o que seria da gente sem a internet e a Planilhando....
Ai...continuando a pensar me deparei que este forum no mínimo ajudou a varios colegas a ter destaque no trabalho e quem sabe alguns ganharam elogios e promoções....
Viva a feliz idéia de formar este forum... parabens a todos que o enriquecem!!!!

Matriz e Alexinceo a sua sugestão foi na mosca!!! Agradeço
Wagner, de fato o resultado para janeiro esta certo os outros não encaixaram e até agora não encontrei onde está o erro, mas sua ajuda também foi preciosa pois posso usa-la em outro momento e situação.

Agradeço a todos pela preocupação, dedicação e trabalho.

Forte abraço,
Willian

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/11/2012 7:34 am
(@alexinceo)
Posts: 12
Active Member
 

Na maioria das vezes a necessidade é tão brilhante quando a solução...

Agradecemos tambem o retorno, pois um topico abandonado é um desperdicio de esforços dos que tentam responder.

 
Postado : 08/11/2012 8:55 am