Ir ao conteúdo
  • Cadastre-se

Como não somar valores duplicados?


nbenassi

Posts recomendados

Boa tarde!

Tenho uma planilha de dados com valores principais e os mesmos dados há tambem valores secundarios. porém só alguns dados têm valores secundarios. E os dados com valores secundarios, todos são repetidos de acordo com os principais.

A questão é: como faço p/ somar somente os valores dos dados que não se repetem?

Ex.:

A--------B-------C

1 maria----100----cod.001

2 joao------50----cod.002

3 Antonio--150----cod.003

4 Rosa-----200----cod.004

5 Sebastiao-50----cod.005

6

7

8 maria-----100---cod.001

9 Antonio---150---cod.003

10 Rosa-----200---cod.004

Eu preciso de uma fórmula que eu possa incluir desde A1 ate A10, mas que some somente os valores dos códigos que não se repetem.

** Sei que seria mais fácil somar somente ate a5, mas deve ser dessa forma, pois essa planilha é constantemente alterada, com inclusão e exclusão de linhas e dados, e não quero ter que mudar a fórmula toda vez que isso acontecer.

Grata

Link para o comentário
Compartilhar em outros sites

Prezada Nbenassi, Boa Tarde.

Sugiro você utilizar-se de uma coluna auxiliar para apontar onde estão os primeiros registros de cada código.

Utilizando o seu exemplo faça:

D1 --> =SE(A1="";"";SE(CONT.SE($C$1:C1;C1)>1;"";"*"))

A fórmula faz:

Marca com um asterisco(*) sempre que aparecer um código pela primeira vez.

Arraste a fórmula até D10

Coloque agora o totalizador onde você precisar.

Façamos C12 --> =SOMARPRODUTO(($E$1:E10<>"")*(B1:B10))

A fórmula faz:

Soma o valor correspondente a coluna B na linha cujo célula na coluna E estiver com asterisco(*).

Era isto que você queria?

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Olá grande amigo Mazzaropi

gostei muito da sua ideia...

ja ate salvei ela, para alguma planilha futura que eu precisar!

mas so uma correção que quero confirma com você....

na segunda formula

Façamos C12 --> =SOMARPRODUTO(($E$1:E10<>"")*(B1:B10))

no lugar da letra E seria a letra D correto?:confused:

um abraço!:cool:

Link para o comentário
Compartilhar em outros sites

Caro deejaywesley, Boa Tarde.

Você tem toda razão.

Foi erro de digitação meu.

Obrigado pelo alerta.

Prezada Nbenassi, Boa Tarde.

Corrigindo a fórmula que ficou com erro de digitação, FAÇA:

Coloque agora o totalizador onde você precisar.

Ex.: C12 --> =SOMARPRODUTO(($D$1: D10<>"")*(B1:B10))

A fórmula faz:

Soma o valor correspondente a coluna B na linha cujo célula na coluna D estiver com asterisco(*).

Até mais.

Link para o comentário
Compartilhar em outros sites

Boa tarde!

Primeiramente gostaria de pedir desculpas pela demora ao responder, é que eu tive um problema com meu computador no mesmo dia da postagem, e só agora ele foi concertado.

Muito obrigada pela atenção de vocês :D

Eu até sabia que a fórmula iria ser a SE e a SOMARPRODUTO... só não sabia como organizar tudo :wacko: hehe

Só demorei um pouco p/ entender o porquê do CONT.SE, então eu tive que desmembrar a fórmula p/ eu conseguir entender ^_^.

Mas deu certinho :D

Dessa forma vai dar p/ eu emplementar em todas as outras fórmulas ^_^!!!

Mais uma vez muitíssimo obrigada. :wub:

Mas como faço para calcular o que tem "*"????

Eu já coloquei de todas as fórmas: ="*", "=*", "*" e não da certo!!!

Link para o comentário
Compartilhar em outros sites

Prezada nbenassi, Boa Tarde.

"...Mas como faço para calcular o que tem "*"????

Eu já coloquei de todas as fórmas: ="*", "=*", "*" e não da certo!!! ..."

Não compreendí exatamente a sua dúvida.

Você quer "contar" ou "somar" os asteriscos (*)?

Relembrando o que escreví na mensagem da explicação da fórmula, o asterisco é um artifício para "apontar" as linhas onde existem códigos aparecendo pela primeira vez, já que você somente deseja somar o valor cujos códigos apareçam apenas pela primeira vez.

Isto foi baseado em sua explicação.

Está certo a interpretação do que você queria?

A fórmula do SOMARPRODUTO faz exatamente isto.

"...Coloque agora o totalizador onde você precisar.

Ex.: C12 --> =SOMARPRODUTO(($D$1: D10<>"")*(B1:B10))

A fórmula faz:

Soma o valor correspondente a coluna B na linha cujo célula na coluna D estiver com asterisco(*)..."

Como você pode ver, a fórmula "pega" a linha(direção) marcada com o asterisco, ou seja, diferente de branco (<>""), como tendo um código válido para soma e soma o valor presente na coluna B da respectiva linha.

Se você ainda estiver em dúvida, por favor, entre em contato.

A ideia é você sair daqui tendo entendido o que foi feito e não apenas com uma fórmula para resolver o seu problema momentâneo.

Aguardo a sua resposta.

Link para o comentário
Compartilhar em outros sites

Mazzaropi querido... me desculpa da pergunta sem noção... rsrs agora que eu reli percebi.

Na verdade é o seguinte... Eu tambem preciso fazer isso ao contrario e incluir mais um critério. É que a planilha onde é aplicada essa fórmula, é vinculada a outra, então toda célula que tiver vazia, aparece 0, porém isso inclui a linha onde há o valor total e se eu fizer a sua fórmula ao contrário, ele acaba somando o total também!

Então a pergunta certa era: como eu posso incluir mais um critério nessa fórmula?

Mas já consegui resolver sozinha :D:wub:

Mas aproveitando o ensejo... como usa ela p/ tirar a média e contar? Isso eu não consegui achar a fórmula...

Era isso!!

Desculpa ai a confusão hehe

Link para o comentário
Compartilhar em outros sites

Prezada nbenassi, Boa Noite.

Não há necessidade de se desculpar.

Todo mundo tem seu dia de confuso.:wacko:

Você até parece ser "gente do bem" (hi hi hi)

Vamos às perguntas:

Continuarei usando as referências ao seu exemplo na primeira mensagem.

"...Mas aproveitando o ensejo... como usa ela p/ tirar a média e contar? Isso eu não consegui achar a fórmula...

Era isso!!

Desculpa ai a confusão hehe ..."

Como você pediu acima, vou mostrar os resultados desejados utilizando a mesma fórmula(Função).

1) Você não disse o que quer contar.

....Estou presumindo que você queira contar quantos códigos foram somados.

....É isto mesmo?

....Bem, se for, basta fazer isto:

....Em alguma célula, ex.: E10 --> =SOMARPRODUTO(($D$1: D10<>"")*1)

....Usando o seu exemplo a resposta deverá ser cinco(5)

2) Você não disse também que tipo de média quer e nem quais os argumentos da média.

....Na Matemática nós temos quatro(4) tipos de média:

.......1) Média Aritmética Simples (Média Aritmética)

.......2) Média Aritmética Ponderada (Média Ponderada)

.......3) Média Harmônica

.......4) Média Geométrica

....Mais uma vez, estou presumindo :cool: que você queira a média mais utilizada comumente, Média Aritmética.

....Se for, então deverá ser entre o total dos valores somados e a quantidade de ocorrências somadas.

....Bem, se for, basta fazer isto:

....Em alguma célula, ex.: E13 --> =SOMARPRODUTO(($D$1: D10<>"")*(B1:B10))/SOMARPRODUTO(($D$1: D10<>"")*1)

....Usando o seu exemplo a resposta deverá ser cento e dez(110)

Bem, me esforçei para tentar entender a sua necessidade agora e ajudá-la.

MAS, se não for nada disto, basta me falar que terei o maior prazer em lhe ajudar a finalizar o trabalho.

Espero ter ajudado.

Aguardo resposta.

Link para o comentário
Compartilhar em outros sites

Boa Tarde Mazzaropi!

Desculpa a demora de responder... Hoje depois de uns dias, eu vi que realmente estava muito confuso o que eu realmente queria dizer hehe. Mas você acertou quase tudo, só não acertou completamente porque eu realmente não me fiz entender. kkk

Acontece o seguinte... Como uso uma planilha vinculada, todas a células que estão vazias (na planilha original) aparece 0. Com isso, a sua fórmula tambem inclui o * para o primeiro 0 que aparece.

Assim:

A--------B-------C-----------D

1 maria----100----cod.001---*

2 joao------50----cod.002---*

3 Antonio--150----cod.003---*

4 Rosa-----200----cod.004---*

5 Sebastiao-50----cod.005---*

6 0---------0------0---------*

7 0---------0-------0

8 maria-----100---cod.001

9 Antonio---150---cod.003

10 Rosa-----200---cod.004

Então na contagem no mesmo exemplo, ao invéz de dar 5 dá 6. A ideia inicial era fazer uma fórmula com os 2 critérios: o * e o 0. Mas achei uma solução simples, mas que funcionou:

=SOMARPRODUTO(($D$1: D10<>"")*1)-1

Deu certo! Pode não ser a forma com muita funcionabilidade, mas solucionou por enquanto!!!!hehe

E na média - é de fato a média normal - o problema é o mesmo, e eu não consegui "encaixar" o -1. E na sua fórmula, como entra uma linha a mais, a média fica menor. Usando o exemplo a média daria 110, e a fórmula calcula 91,67.

Como pode ser feito então?

E uma curiosidade.... Porque nas duas fórmulas você usou *1?

Muito obrigada pela anteção :wub:

Hah!! E obrigada pelo "gente do bem" ^_^

Link para o comentário
Compartilhar em outros sites

Prezada Nbenassi, Boa Noite.

"...depois de uns dias, eu vi que realmente estava muito confuso o que eu realmente queria dizer hehe. Mas você acertou quase tudo, só não acertou completamente porque eu realmente não me fiz entender. kkk..."

Você tem razão.

Quando o problema é apresentado com todos os detalhes, É BEM MAIS FÁCIL, para que se possa entender e ajudar.

MAS, depois de alguma experiência com usuários solicitando "coisas" nos sistemas de informação, de todas as formas possíveis e inimagináveis durante vários anos, a gente tira de letra um pequeno contra-tempo como este seu.

Não se preocupe.

"...Acontece o seguinte... Como uso uma planilha vinculada, todas a células que estão vazias (na planilha original) aparece 0. Com isso, a sua fórmula também inclui o * para o primeiro 0 que aparece..."

Como não foi mencionado, em momento algum, que as células poderiam estar em algum momento, preenchidas com zeros(0), a fórmula não considerou esta possibilidade.

"...Então na contagem no mesmo exemplo, ao invéz de dar 5 dá 6. A ideia inicial era fazer uma fórmula com os 2 critérios: o * e o 0. Mas achei uma solução simples, mas que funcionou:

=SOMARPRODUTO(($D$1: D10<>"")*1)-1..."

A fórmula está contando CERTO.

Não precisa modificá-la com este, digamos, "artifício".

A questão é que está sendo considerada uma opção de dados não desejada, o zero(0).

Então, o correto é corrigir na ORIGEM.

A fórmula na coluna D será preparada para não levar em conta o valor zero(0).

ANTES:

D1 --> =SE(A1="";"";SE(CONT.SE($C$1:C1;C1)>1;"";"*"))

AGORA:

D1 --> =SE(OU(A1="";A1=0);"";SE(CONT.SE($C$1:C1;C1)>1;"";"*"))

Arraste a fórmula até D10 (levando-se em conta o seu exemplo).

Ao corrigir a ORIGEM, todas as outras informações serão corrigidas sem nenhuma necessidade de modificar as outras fórmulas.

"...E uma curiosidade.... Porque nas duas fórmulas você usou *1?..."

O SOMARPRODUTO soma várias matrizes indicadas.

Quando se usa restrições, ex.: <>"" mas apenas uma matriz, esta é tratada como zero.

Se é utilizado mais um argumento, ambos são considerados.

O argumento 1 fica neutro no resultado e propricia a utilização da mesma fórmula em todo o seu processo.

Era isto que você queria?

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!