Notifications
Clear all

Média últimos resultados desconsiderando células brancas

12 Posts
5 Usuários
0 Likes
2,775 Visualizações
(@rsene)
Posts: 13
Active Member
Topic starter
 

Boa tarde.

Preciso de uma fórmula para calcular a média dos últimos 3 resultados de uma sequência de dados, mas que não considere células em branco.
Detalhe: os dados da planilha são alimentados mês a mês, então todo mês um novo valor é adicionado ao final da sequência de dados. A fórmula precisa calcular automaticamente sempre a média dos 3 últimos resultados inseridos até o momento.

Estou enviando uma planilha em anexo como exemplo.

Algumas considerações:
* Os dados estão posicionados na horizontal;
* Se não houver nenhum dado na sequência, a fórmula precisa deixar o resultado em branco;
* Se houver apenas um único dado na sequência, a fórmula precisa retornar este único dado como resultado;
* Se houver apenas dois resultados na sequência, a fórmula precisa retornar a média entre esses dois resultados;

Desde já em agradeço pela ajuda.

 
Postado : 22/05/2018 1:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43753
Illustrious Member
 

.
Veja se é isto ... (fórmula matricial, finalize com Crtl+Shift+Enter)
.

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

 
Postado : 22/05/2018 2:53 pm
(@rsene)
Posts: 13
Active Member
Topic starter
 

Olá meu caro, bom dia.

Primeiramente muito obrigado pela resposta.

Cara, vc é um monstro! A fórmula que vc criou faz praticamente tudo o que eu preciso, só precisa de uns ajustes pequeninos.

1) Quando a sequência de dados não tiver nenhum valor, quando a linha horizontal estiver completamente vazia de ponta a ponta, eu gostaria que a fórmula retornasse apenas um resultado em branco. (Neste caso aqui nós poderíamos utilizar a função SEERRO, não?)

2) Quando a sequência de dados tiver apenas dois valores, eu gostaria que a fórmula retornasse a média apenas entre estes dois valores, ou seja, dividido por 2. Eu percebi que, quando há apenas dois valores presentes, a fórmula continua dividindo por 3.

3) Eu gostaria que quando houver o valor "0" (Zero) na sequência de dados, que seja considerado na fórmula. Eu percebi que quando há o valor "0" (Zero) presente entre os dados, a fórmula não trás o resultado correto.

- Por exemplo: o "Produto D" possui a sequência de valores 4, 0, 2, 2. Então a média que eu quero é de (0 + 2 + 2) / 3, que dará 1,33. A fórmula está desconsiderando o Zero da sequência e considerando o valor "4" pra fazer a conta.
- Outro Exemplo: o "Produto I" possui a sequência de valores 1, 2, 2, 0. Então a média que eu quero é de (2 + 2 + 0) / 3, que dará 1,33. A fórmula está desconsiderando o Zero da sequência e considerando o valor "1" pra fazer a conta.

4) Eu gostaria que o valor "0" (Zero) fosse considerado um valor válido sempre. Então quando a sequência de dados tiver apenas um único zero, eu gostaria que a fórmula retornasse o valor "0". Quando a sequência tiver dois zeros ou mais zeros, (mas apenas zeros ao longo de toda a sequência), eu gostaria que a fórmula retornasse zero.

Bom, veja aí se dá pra ajustar.
Valeu

 
Postado : 23/05/2018 4:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43753
Illustrious Member
 

.
Rsene, veja agora ............ itens 1, 2 e 4 resolvidos ... para resolver o item 3 a formula iria ficar um monstro ... por isto dou uma sugestão: ao invés de usar 0, use 0,1, isto não afetará o resultado!! ......... Mas se não for possível usar 0,1, avise aqui ...
.

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

 
Postado : 23/05/2018 1:11 pm
(@jsomazz)
Posts: 36
Eminent Member
 

Bom dia RSene,

Só uma pequena contribuição, fiz algumas alterações conforme minha limitação e mesmo se não te servir acredito que alguma das idéias pode vir a calhar.

 
Postado : 24/05/2018 4:55 am
(@rsene)
Posts: 13
Active Member
Topic starter
 

Olá jsomazz,

Você até que fez uma planilha bem engenhosa com algumas soluções. Mas adicionar tabelas e campos adicionais sai um pouco do que eu estou procurando. A ideia é otimizar a planilha o máximo possível com o mínimo de atuação do usuário.

De qualquer forma eu agradeço pela contribuição.

 
Postado : 26/05/2018 9:43 am
(@rsene)
Posts: 13
Active Member
Topic starter
 

JSCOPA,

eu estava estudando aqui a fórmula que vc me passou. Eu a adaptei à minha planilha original e de fato a fórmula funciona e faz quase tudo o que eu preciso, com exceção de reconhecer o '0' (Zero) como um número válido para o cálculo. A outra solução que vc deu, o de transformar os valores de 0 em 0,01. realmente funciona e não muda o resultado, e eu até posso ir utilizando essa solução de forma paliativa até encontrar uma solução definitiva, já vai me ajudar bastante.

Contudo, como essa fórmula que eu estou procurando não é para trabalho, e sim apenas para hobby e para estudo/conhecimento do Excel (e por isso eu não possuo urgência em encontrar uma solução), eu ainda vou tentar ver se eu encontro uma fórmula que me dê uma solução completa. Como eu disse pro outro colega, a ideia é automatizar a planilha o máximo possível, e não adicionar uma segunda etapa de atuação do usuário. E essa automatização eu desejo fazer apenas por meio de fórmula (como disse, estou fazendo isso também para questão de estudo e conhecimento).

Basicamente, o que eu estou precisando é encontrar uma fórmula que me retorne os últimos 'n' valores de uma sequência de dados que é alimentada com o passar do tempo, e que considere zeros como números válidos e desconsidere células vazias.

Embora eu tenha solicitado que eu queria uma fórmula que trouxesse a média dos três últimos valores, na verdade eu estou tentando achar uma fórmula que, com mínimos ajustes, seja capaz de se ajustar a qualquer 'n' últimos valores que eu deseje fazer média, podendo assim ser utilizada em diversas finalidades. Pode ser os 3 últimos números, pode ser os 12 últimos números, pode ser os 100 últimos números de uma sequência. Na fórmula que vc me passou, eu entendi que a parte da fórmula que procura um dos números na sequência é essa: " ÍNDICE(D6:O6;MAIOR(SE(D6:O6;COL(D6:O6)-2);3)-1) ". Então, toda vez que eu quiser aplicar a fórmula em outras planilhas para outras funções buscando uma outra quantidade 'n' de números diferentes, eu terei que copiar e colar novamente essa parte da fórmula, mudando a sequência numérica do final.

Dessa forma, fica inviável ajustar essa fórmula quando se deseja buscar um número 'n' muito grande dos últimos valores de uma sequência. Eu imagino que o Excel deva ter uma forma de fazer essa busca com uma fórmula mais simples que possa ser facilmente ajustada a diversos cenários. De novo, tudo o que eu preciso é de uma fórmula que me retorne os últimos 'n' valores de uma sequência de dados que é alimentada com o passar do tempo.

========================
Uma pequena contribuição de minha parte:

Eu fiz uma pequena alteração na fórmula que vc me enviou que automatizou a fórmula simplificando-a de uma maneira bem legal. Eu entendi que a primeira parte da fórmula que vc me passou é para calcular a média da sequência quando ela for menor do que '3'. A parte da fórmula é essa:

=SE(CONT.SE(D7:O7;">0")=0;" ";SE(CONT.SE(D7:O7;">0")=1;MÁXIMO(D7:O7);SE(CONT.SE(D7:O7;">0")=2;SOMA(D7:O7)/2

Aqui você criou uma função 'SE' para cada cenário possível, ou seja, para quando a sequência não tiver nenhum valor, para quando a sequência tiver apenas 1 valor, e para quando a sequência tiver 2 valores. Contudo, se quisermos ajustar essa fórmula para uma outra utilidade, por exemplo no caso de eu quiser a média dos últimos 12 períodos, ajustar essa primeira parte da fórmula ficaria muito trabalhosa. Teríamos que criar um novo bloco da função 'SE' 12 vezes para pode fazer funcionar. Bem, eu encontrei uma função simples que automatiza bastante essa primeira parte da função, e que funciona para qualquer cenário com o mínimo de ajuste. Veja abaixo:

=SE(CONT.SE(D7:O7;"<>")<=4;SEERRO(MÉDIASE(D7:O7;"<>""");"");

Neste caso, bastaria apenas nós substituirmos o número '4' da função acima para a quantidade de 'n' números que desejarmos. Essa primeira parte da função ficou bem automatizada.

 
Postado : 26/05/2018 10:28 am
Estevaoba
(@estevaoba)
Posts: 0
Eminent Member
 

Tente esta fórmula matricial (ctrl+shift+enter).
Note que a largura do intervalo volátil é definida pelo valor "n" que eu coloquei na célula C2, por exemplo.
Isso facilita alterá-lo.

=MÉDIA(DESLOC(D4;;MÁXIMO(SE(D4:Z4<>"";COL(D4:Z4)-3))-1;1;SE(MÁXIMO(SE(D4:Z4<>"";COL(D4:Z4)-3))>=$C$2;-$C$2;SE(MÁXIMO(SE(D4:Z4<>"";COL(D4:Z4)-3))=1;1;-MÁXIMO(SE(D4:Z4<>"";COL(D4:Z4)-3))+1))))

Por favor, faça testes e nos dê retorno.

Good luck!

 
Postado : 26/05/2018 11:11 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Segue minha contribuição:

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

 
Postado : 26/05/2018 11:21 am
(@rsene)
Posts: 13
Active Member
Topic starter
 

Meu caro wzxnet7, você é o Google do Excel!! Tô testando sua fórmula aqui e parece que ela funciona direitinho, 100%. Incrível!

Sei nem como te agradecer meu caro.

Confesso que eu não entendi quase nada em como vc montou essa fórmula, as funções que vc utilizou eu não conheço quase nenhuma. Eu até tentei olhar as descrições das fórmulas lá no excel pra ver se eu entendo alguma coisa mas não entendi nada kkk (essa descrição das fórmulas no Excel são muito difíceis para um leigo entender).

Mas é isso aí, era exatamente isso que eu estava procurando. Vou dar uma estudada nessa fórmula, mas se vc tiver disposição aí eu agradeceria se vc tentasse me explicar de forma simples o que cada parte da fórmula faz.

De qualquer forma, eu já estou bem satisfeito com sua ajuda, meu caro. Muito obrigado.

 
Postado : 28/05/2018 9:04 am
(@rsene)
Posts: 13
Active Member
Topic starter
 

Só uma coisinha, se eu quiser a média de uma quantidade 'n' de valores diferentes de 3, por exemplo, a média dos últimos 8 valores, aonde exatamente que eu tenho que mudar na fórmula?

 
Postado : 28/05/2018 9:07 am
(@rsene)
Posts: 13
Active Member
Topic starter
 

Olá Estevaoba,

Como vc já deve ter visto, o outro colega já me passou uma solução definitiva que funciona direitinho, mas só pra te dar um retorno, eu testei sua fórmula aqui, e não sei o porque mas em alguns casos ela não trás o resultado exato. Eu adicionei sua fórmula na planilha de teste que eu anexei na minha primeira mensagem, e alguns itens estão trazendo resultados errados. Por exemplo, o item 'Produto F' tem a sequência "7, 8, <espaço>, 0". Então a média dos três últimos valores é 5,00, mas a fórmula está me retornando uma média 4,00.

Outro exemplo: o item 'Produto K' tem a sequência "5, <espaço>, 1, 4". Então a média dos três últimos valores é 3,33, mas a fórmula está me retornando uma média 2,50.

Mas de qualquer forma eu agradeço pela contribuição.

 
Postado : 28/05/2018 9:26 am