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
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"))
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
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?
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.
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 ??
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
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.
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")))
Os itens destacados corresponde ao nome de sua planilha "Matriz" informado como Texto; se utilizar outra nomenclatura deve atualiza-los manualmente.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
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
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
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
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