Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
#40408
Olá :D

Estou a precisar de uma ajudinha meus caros, tenho aqui um desafio que não tenho conseguido resolver!
Em resumo precisava encontrar uma forma que devolva o numero maior ou igual a um numero de referencia e, obedecer a outros critério.

Exemplo em Anexo.


Desde já agradeço a Ajuda que vier :D
Você não está autorizado a ver ou baixar esse anexo.
#40411
Experimente a fórmula matricial abaixo em E14.
Código: Selecionar todos
=ÍNDICE(Tabela1[Valor];CORRESP(1;(Tabela1[Critério 1]=B14)*(Tabela1[Valor]=MÍN(SE(Tabela1[Critério 1]=B14;SE(Tabela1[Valor]>=D14;Tabela1[Valor]))));0))
obs. por ser uma fórmula matricial, após colar a fórmula na célula aperte F2 e em seguida aperte juntas Ctrl+Shift+Enter, em seguida arraste para baixo
#40413
Olá osvaldomp, muito obrigado por responder!
Testei mas não funciona pois devolve erro de valor! Contudo, um dos Critérios 2 tambem não está incluido!

Eu tenho usado a mesmo tipo de lógica para tentar construir o a formula, o problema é que usa texto e números. :?
#40415
IvoNogueira escreveu: Testei mas não funciona pois devolve erro de valor!
Veja a obs. que coloquei no post anterior.

Contudo, um dos Critérios 2 tambem não está incluido!
Verdade. Experimente a versão abaixo.
Anexei cópia do seu arquivo com a fórmula abaixo aplicada.
Código: Selecionar todos
=ÍNDICE(Tabela1[Valor];CORRESP(1;(Tabela1[Critério 1]=[@[Critério 1]])*(Tabela1[Critério 2]=[@[Critério 2]])*(Tabela1[Valor]=MÍN(SE(Tabela1[Critério 1]=[@[Critério 1]];SE(Tabela1[Valor]>=[@[Valor de Referencia]];Tabela1[Valor]))));0))
Você não está autorizado a ver ou baixar esse anexo.
#40418
Amigo,

Veja se o que fiz lhe ajuda, eu fiz com fórmula matricial e sem matricial.

Espero que ajude.

Caso queira agradecer, clique na mãozinha.

Abs
Você não está autorizado a ver ou baixar esse anexo.
#40421
FelipeMGarcia escreveu:...eu fiz com fórmula matricial e sem matricial.
A sua segunda fórmula é matricial também pois a função ÍNDICE utilizada no modo matriz é nativa matricial e por isso ela torna a fórmula inteira em fórmula matricial. ;)
#40443
osvaldomp escreveu:
IvoNogueira escreveu: Testei mas não funciona pois devolve erro de valor!
Veja a obs. que coloquei no post anterior.

Contudo, um dos Critérios 2 tambem não está incluido!
Verdade. Experimente a versão abaixo.
Anexei cópia do seu arquivo com a fórmula abaixo aplicada.
Código: Selecionar todos
=ÍNDICE(Tabela1[Valor];CORRESP(1;(Tabela1[Critério 1]=[@[Critério 1]])*(Tabela1[Critério 2]=[@[Critério 2]])*(Tabela1[Valor]=MÍN(SE(Tabela1[Critério 1]=[@[Critério 1]];SE(Tabela1[Valor]>=[@[Valor de Referencia]];Tabela1[Valor]))));0))
Olá Osvaldo! Agradecido pela sua ajuda e sua paciencia! Voce é genial :D
Realmente funcionou excepto para uma situação especifica! Como estamos a utilizar a formula de mínimo para devolver um valor dentro da matrix, quando o valor do critério é superior ao valor máximo do valor de referencia a formula devolve um erro pois não existe um valor mínimo. A ideia é que devolva sempre um valor, neste caso, como não há um minimo deveria devolver o máximo da matriz!

Tentei sem sucesso, resolver dentro das condições do SE() mas não comprendo inteiramente a sua função, por isso queria questionar sobre isso!
Bom acontece que não consigo compreender o porque do valor de procura do CORRESP(1,...). Se não for pedir de mais gostaria de entender melhor esta parte, contudo suponho que o 1 seja o primeiro valor mínimo da Matriz! será isso?

Já agora ...
Não sabia que podia usar o * para juntar as condições para referenciar a matriz( Genial :o ) ! Valeu, Obrigado.
#40444
FelipeMGarcia escreveu:Amigo,

Veja se o que fiz lhe ajuda, eu fiz com fórmula matricial e sem matricial.

Espero que ajude.

Caso queira agradecer, clique na mãozinha.

Abs
Olá FilipeMGarcia e obrigado pela sua ajuda !

No entanto continuamos a temos o mesmo problema que existe na formula do Osvaldo! Quando o numero de procura é superior ao máximo da matriz, a formula não devolve um numero porque não existes. Ao invés disso a ideia seria devolver o valor mais alto dentro da matrix!
#40445
IvoNogueira escreveu: Realmente funcionou excepto para uma situação especifica! ... A ideia é que devolva sempre um valor, neste caso, como não há um minimo deveria devolver o máximo da matriz!
Ivo, quem tenta ajudar toma como base o que é disponibilizado no arquivo/na planilha e o que é solicitado pelo interessado.
E no seu exemplo não consta essa situação que você expôs por último. Então eu sugiro que você disponibilize uma nova amostra do seu arquivo com TODAS as situações possíveis de ocorrer (são as exceções que você comentou acima e que não estão previstas nas fórmulas até aqui sugeridas) e para cada situação qual o resultado esperado com as necessárias explicações de como o resultado foi obtido.

dicas
1. para responder clique em + resposta, só clique em Citar se necessário.
2. seria oportuno você não repetir títulos de colunas nas duas Tabelas pois talvez o Excel poderá se "confundir" nas fórmulas em alguma situação.
#40452
Me desculpe Osvaldo. Realmente não estava a utilizar o Fórum de forma correta.

No exemplo inicial eu não pode prever a situação que falei anteriormente, foi um lapso meu pois deveria ter dito que a formula deve retornar sempre um numero.
Quanto a nomeação das colunas é apenas ilustrativo, criei este ficheiro para recriar o "problema" e as condições especificas do original, e também para que a pessoa pudesse visualmente relacionar a ideia entre as tabelas.
Você não está autorizado a ver ou baixar esse anexo.
#40481
Olá, Ivo.

Veja se a fórmula abaixo atende.
Código: Selecionar todos
=SEERRO(ÍNDICE(Tabela1[Valor de Referencia];CORRESP(1;(Tabela1[Ano R.]=[@Ano])*(Tabela1[Situação R.]=[@Situação])*(Tabela1[Valor de Referencia]=MÍN(SE(Tabela1[Ano R.]=[@Ano];SE(Tabela1[Valor de Referencia]>=[@[Valor T.]];Tabela1[Valor de Referencia]))));0));MÁXIMO((Tabela1[Valor de Referencia])*((Tabela1[Ano R.])=[@Ano])*((Tabela1[Situação R.])=[@Situação])))
#40485
Olá Osvaldomp.

Sim a formula atinge o seu propósito. Os meu maiores agradecimentos, a sua ajuda foi preciosa.
Entretanto a formula não estava funcionando primeiramente porque a função SEERRO na minha versão do Excel é na verdade SE.ERRO().

Deixo ficar para os interesados em utilizar este exemplo a versão que ficou a funcionar para mim.
Código: Selecionar todos
=SE.ERRO(ÍNDICE(Tabela1[Valor de Referencia];CORRESP(1;(Tabela1[Ano R.]=[@Ano])*(Tabela1[Situação R.]=[@Situação])*(Tabela1[Valor de Referencia]=MÍNIMO(SE(Tabela1[Ano R.]=[@Ano];SE(Tabela1[Valor de Referencia]>=[@[Valor T.]];Tabela1[Valor de Referencia]))));0));MÁXIMO((Tabela1[Valor de Referencia])*((Tabela1[Ano R.])=[@Ano])*((Tabela1[Situação R.])=[@Situação])))
Uma vez mais agradeço a sua paciencia e disponibilidade em me ajudar.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord