Notifications
Clear all

Somar excluindo datas

8 Posts
4 Usuários
0 Reactions
1,395 Visualizações
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Boa tarde pessoal , tenho uma dúvida:

Existe alguma forma de somar os valores dessa coluna, porém , apenas os que não tem formatação de data???
Ou seja, fazer com que o resultado da célula A7 seja 3.000?

Desde já, agradeço!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 16/02/2018 3:46 pm
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Levando-se em conta que todos os dados são numéricos (datas são números "mascarados") eu apelaria, se possível, para os valores como critérios de desempate.
por exemplo:

a menor data neste seu exemplo é 12/01/2012 que corresponde ao número 40920.

se eu tivesse uma mistura de datas e quantidades de produtos e soubesse que nenhum produto meu chegaria numa quantidade de mais que 40.000, eu faria um somase de tudo que fosse menor que 40.000

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 16/02/2018 4:14 pm
deciog
(@deciog)
Posts: 0
Trusted Member
 

xlarruda, Bom Dia.

Existe, porem o colega wzxnet7, deu um ótima solução, porem como disse, se tiver valor maior ira dar erro, eu em outra oportunidade pedi para você postar um modelo, pode este que você fez, imagem não da para ver como esta criada a célula, então, poste um modelo se a solução do colega wzxnet7 não resolveu

Decio

Marque o tópico como Resolvido se foi solucionado seu problema.
Brasil, São Paulo - SP
Décio Gassi

 
Postado : 17/02/2018 6:27 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Colega XLArruda, bom dia

Uma maneira de fazer seria com uma UDF usando a propriedade .Text do Range, ao invés de .Value, já que traz o conteúdo conforme a célula está formatada.

Exemplo:

Function SomaSóNúm(rg As Range) As Double
  Dim cél As Range, conteúdo As Variant
  For Each cél In rg
    On Error Resume Next
      conteúdo = cél.Text
      If conteúdo Like "*%" And IsNumeric(cél.Value) Then conteúdo = cél.Value
      SomaSóNúm = SomaSóNúm + conteúdo
    On Error GoTo 0
  Next cél
End Function

O tratamento da porcentagem é porque esta não seria considerada na soma se não pegar pelo valor. Já valores em notação científica e monetários são somados normalmente, sem tratar. Se quiser que a função some valores lógicos (0 e 1 para Falso e Verdadeiro), tem que fazer mais uma condição if para isso.

O tratamento de erro é porque, quando a célula é tipo data o conteúdo fica sendo uma string e, gerando erro ao somar, acaba sendo ignorada na soma.

Muitos puristas não gostam de tirar proveito do uso dessa técnica de tratamento de erros, argumentando que tratamentos de erros deveriam ser só para erros imprevisíveis. Nesse caso acima, precisaria então analisar caso a caso todas as formas de separadores de data além da barra, como hífen, ponto, espaço...

 
Postado : 17/02/2018 9:34 am
deciog
(@deciog)
Posts: 0
Trusted Member
 

xlarruda, Bom Dia.

Hoje sobrou tempo, segue uma forma de fazer, usei coluna auxiliar que pode ser ocultada

Se foi útil, clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Se você Visitante Também gostou e foi útil pode clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Decio

Marque o tópico como Resolvido se foi solucionado seu problema.
Brasil, São Paulo - SP
Décio Gassi

 
Postado : 18/02/2018 5:57 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Boa essa, Décio!

 
Postado : 18/02/2018 8:13 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Bem lembrado Décio!

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 18/02/2018 9:04 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Colega deciog muito Obrigado!

Muito boa sua saída... e obrigado a todos pela ajuda.

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 19/02/2018 10:03 am