Notifications
Clear all

Função Matriz

11 Posts
2 Usuários
0 Reactions
2,212 Visualizações
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Boa Tarde Companheiros.

Venho tendo dificuldades em concluir uma planilha que estou montando para a minha empresa.

Quero criar uma matriz para procurar valores a partir de alterações que faço com uma caixa de listagem.
O problema é que tenho 2 variáveis que são procuradas na matriz.

EX:

Quero que a formula busque na matriz o "Serviço" e quando encontrado, que procure o "Elemento", dentro da tabela especifica do Serviço, e retorne o valor que está na linha abaixo e na mesma coluna.

Tentei usar um PROCH, PROCV....

Mas não consigo concluir a formula.

Em anexo vai o exemplo que quero aplicar:

Se puderem me ajudar aplicando os seus conhecimentos, ficaria profundadamente agradecido.

Desde já agradeço ao espaço dedicado a duvidas neste incrível forum.

O arquivo anexado tem que estar Compactado - Leia as normas do fórum

 
Postado : 25/07/2013 11:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente
=INDIRETO(ENDEREÇO(CORRESP($E$3;MATRIZ!$A$1:$A$37;0);CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$37;0)-1);0;0;1;15);0);1;1;"MATRIZ"))

 
Postado : 25/07/2013 11:56 am
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Experimente
=INDIRETO(ENDEREÇO(CORRESP($E$3;MATRIZ!$A$1:$A$37;0);CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$37;0)-1);0;0;1;15);0);1;1;"MATRIZ"))

Reinaldo.

Muito Obrigado.

Se não te incomodas, podes me explicar a formula?

 
Postado : 25/07/2013 12:37 pm
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Experimente
=INDIRETO(ENDEREÇO(CORRESP($E$3;MATRIZ!$A$1:$A$37;0);CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$37;0)-1);0;0;1;15);0);1;1;"MATRIZ"))

Reinaldo,

Outro comentário,

Quando eu troco o serviço a formula não funciona.

Experimente trocar Blocos por Vigas.

 
Postado : 25/07/2013 12:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilizei como base de pesquisa, o disposto no primeiro Bloco, onde BLOCOS está na linha dos valores, e acima é cabeçalho.
Não atentei que as demais estavam com o nome do serviço na mesma linha que o cabeçalho. È preciso padronizar.
Se for manter o lay-out de Blocos; todos os demais serviços devem ficar uma célula abaixo, se "subir" BLOCOS para igualar aos demais a formula ficara:
INDIRETO(ENDEREÇO(CORRESP($E$3;MATRIZ!$A$1:$A$36;0)+1;CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$36;0));0;0;1;15);0);1;1;"MATRIZ"))
Tentando explicar:
O que é procurado: o conteúdo de uma célula, que atenda a uma determinada condição. Para isso é preciso do endereço dessa célula.
a Função endereço "transforma" alguns dados numéricos em um endereço de célula da mesma planilha (termo texto vazio) ou em outra planilha.
Exemplo: ENDEREÇO(1;1), retorna --> $A$1, ou seja primeira linha e primeira coluna;
já ENDEREÇO(1;1;;;"MATRIZ") retorna --> MATRIZ!$A$1, pois "informa" a função que os dados referem-se a uma outra planilha.
Note que somente o primeiro e o segundo termo da função são obrigatórios; os demais opcionais.
Então precisamos informar qual linha e qual coluna estamos nos referindo.
Linha: CORRESP(E3;MATRIZ!$A$1:$A$36;0)-->Veja detalhes dessa função no excelente tópico: viewtopic.php?f=20&t=8849
Nota: Em seu exemplo se o nome do serviço estiver na mesma linha que os dados utilize conforme acima, se estiver na linha acima some 1, se estiver abaixo subtraia 1
Coluna:CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$36;0));0;0;1;15);0) Detalhes sobre desloc : viewtopic.php?f=28&t=6103 --> Indireto (a grosso modo) retorna o valor de um endereço que está em forma de texto.

Complicou ??

 
Postado : 25/07/2013 1:50 pm
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Utilizei como base de pesquisa, o disposto no primeiro Bloco, onde BLOCOS está na linha dos valores, e acima é cabeçalho.
Não atentei que as demais estavam com o nome do serviço na mesma linha que o cabeçalho. È preciso padronizar.
Se for manter o lay-out de Blocos; todos os demais serviços devem ficar uma célula abaixo, se "subir" BLOCOS para igualar aos demais a formula ficara:
INDIRETO(ENDEREÇO(CORRESP($E$3;MATRIZ!$A$1:$A$36;0)+1;CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$36;0));0;0;1;15);0);1;1;"MATRIZ"))
Tentando explicar:
O que é procurado: o conteúdo de uma célula, que atenda a uma determinada condição. Para isso é preciso do endereço dessa célula.
a Função endereço "transforma" alguns dados numéricos em um endereço de célula da mesma planilha (termo texto vazio) ou em outra planilha.
Exemplo: ENDEREÇO(1;1), retorna --> $A$1, ou seja primeira linha e primeira coluna;
já ENDEREÇO(1;1;;;"MATRIZ") retorna --> MATRIZ!$A$1, pois "informa" a função que os dados referem-se a uma outra planilha.
Note que somente o primeiro e o segundo termo da função são obrigatórios; os demais opcionais.
Então precisamos informar qual linha e qual coluna estamos nos referindo.
Linha: CORRESP(E3;MATRIZ!$A$1:$A$36;0)-->Veja detalhes dessa função no excelente tópico: viewtopic.php?f=20&t=8849
Nota: Em seu exemplo se o nome do serviço estiver na mesma linha que os dados utilize conforme acima, se estiver na linha acima some 1, se estiver abaixo subtraia 1
Coluna:CORRESP(F3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP($E$3;MATRIZ!$A$1:$A$36;0));0;0;1;15);0) Detalhes sobre desloc : viewtopic.php?f=28&t=6103 --> Indireto (a grosso modo) retorna o valor de um endereço que está em forma de texto.

Complicou ??

Reinaldo,

Perfeito meu amigo.
A complexidade da formula ficou muito mais visível após a sua explicação.

Agradeço a sua atenção!!

Ótimo final de semana! Abração.

 
Postado : 26/07/2013 7:41 am
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Se eu Mudar o nome da Aba?
Não entendo a finção dos itens em vermelho na formula, pode me explicar?

=SE(D3=0;"";INDIRETO(ENDEREÇO(CORRESP(C3;MATRIZ!$A$1:$A$36;0)+1;CORRESP(D3;DESLOC(INDIRETO("MATRIZ!A"&CORRESP(C3;MATRIZ!$A$1:$A$36;0));0;0;1;15);0);1;1;"MATRIZ")))

 
Postado : 26/07/2013 9:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Os itens destacados corresponde ao nome de sua planilha "Matriz" informado como Texto; se utilizar outra nomenclatura deve atualiza-los manualmente.

 
Postado : 26/07/2013 9:14 am
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Os itens destacados corresponde ao nome de sua planilha "Matriz" informado como Texto; se utilizar outra nomenclatura deve atualiza-los manualmente.

Reinaldo,

Bom dia!

Está tudo indo muito bem com a minha planilha, consegui entender a sua formula e apliquei ela com exatidão. Mais uma vez, MUITO OBRIGADO.

Estou enfrentando um problema e acredito que seja o ultimo.

Vou tentar explicar a situação abaixo:

Estou fazendo um histórico de serviços executados. A cada mês um item do serviço é executado (medido) e descontado da Quantidade Total, isto é o saldo.
Porém, o problema que estou enfrentando é na QUANTIDADE ACUMULADA.

Para se obter o saldo "real" do elemento, preciso que no valor acumulado a formula busque os valores acumulados anteriormente de acordo com o seu serviço e elemento.

Em Anexo coloquei um exemplo com 2 medições.
Na n° 1 a quantidade acumulada é simplesmente a mesma que a medida, pois não temos nenhuma outra anteriormente.
Já na medição n° 2 a quantidade medida deve somar a acumulada de seu respectivo serviço e elemento e somar com o que foi executado (medido) no mês 2.

Na célula J17 tentei algum raciocínio porem não obtive sucesso.

Se puderes dar uma olhada. Ficarei grato.

Muito obrigado pela atenção.

Abraço

 
Postado : 29/07/2013 7:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se assim lhe auxilia,
como os dados de serviço estão em células mescladas, fica difícil sua utilização, criei a coluna auxiliar em D, que pode ser oculta, e então a fomula utilizando Somases

 
Postado : 29/07/2013 10:05 am
(@jpfornari)
Posts: 43
Trusted Member
Topic starter
 

Veja se assim lhe auxilia,
como os dados de serviço estão em células mescladas, fica difícil sua utilização, criei a coluna auxiliar em D, que pode ser oculta, e então a fomula utilizando Somases

endereço - indireto é como uma batalha naval!! heheheheheh

Muito bom Reinaldo.

Está pronto o meu arquivo.

Muito obrigado.

Ótima semana. Abraço

 
Postado : 29/07/2013 12:22 pm