Notifications
Clear all

Somar excluindo datas

8 Posts
4 Usuários
0 Reactions
1,390 Visualizações
(@xlarruda)
Posts: 0
New 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!

 
Postado : 16/02/2018 3:46 pm
(@wzxnet7)
Posts: 0
New 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

 
Postado : 16/02/2018 4:14 pm
(@deciog)
Posts: 0
New 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

 
Postado : 17/02/2018 6:27 am
(@edsonbr)
Posts: 0
New 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)
Posts: 0
New 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

 
Postado : 18/02/2018 5:57 am
(@edsonbr)
Posts: 0
New Member
 

Boa essa, Décio!

 
Postado : 18/02/2018 8:13 am
(@wzxnet7)
Posts: 0
New Member
 

Bem lembrado Décio!

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

Colega deciog muito Obrigado!

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

 
Postado : 19/02/2018 10:03 am