Notifications
Clear all

Repetir dados da Linha Automaticamente

4 Posts
1 Usuários
0 Reactions
3,245 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde Galera,
Minha dúvida e a seguinte:
Digamos que eu tenho uma tabela mais ou menos assim:
linha01-----------linha02-----------linha03----------linha04
01----------------Azul--------------dedo------------1/1/2010
02----------------preto--------------Mão------------1/2/2010
03-----------------Azul---------------Pé--------------1/1/2010
04---------------vermelho------------dedo------------1/3/2010
Daí, eu quero saber se tem um jeito (fórmula), em que eu possa, em uma outra tabela, fazer com que as linhas sejam automaticamente lançadas novamente, de acordo com uma classificação pré-estabelecida por mim, por exemplo.
Utilizando a tabela acima, vou usar o critério que, onde a linha03 tiver a palavra "dedo", eu quero que ela repita a linha inteira pra mim novamente, então ficaria assim:
linha 01-----------linha 02-----------linha03----------linha04
01------------------Azul-------------dedo-----------1/1/2010
04----------------vermelho-----------dedo-----------1/3/2010

 
Postado : 26/07/2010 1:49 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caro Fabyano, Boa Noite.

Existe uma maneira de fazer o que você quer sim.

Fiz uma planilha com as suas informações. Não tem Macro nem VBA. Só funções comuns.

Está neste link: http://www.4shared.com/document/EYe2VuXg/26-07-2010-Mazzaropi_Gerando_N.html

__________________________________________________ ______________

Caso você ou alguém queira entender o processo da solução, segue abaixo a explanação.
Mais importante do que dar a solução é mostrar como foi feito.
O peixe mata a necessidade urgente da fome, mas aprender a pescar, garante o futuro.

Cenário:

1) Você tem em uma planilha, uma Tabela 1 com vários dados.(Dado 1, 2, e 3)

2) Você precisa que seja criada uma Tabela 2 em outra planilha, baseada em um critério aplicado no quesito: Dado 2 da Tabela 1.
.....Neste exemplo seu, você deseja DADO 2 = Dedo

Restrição:

Como o quesito: Dado 2 da Tabela 1, pode repetir várias vezes, é necessário utilizar um diferencial para pesquisar os registros.
Quesito é alfabético.
A linha selecionada deve ser repetida integralmente na Tabela 2, sem deixar linhas em branco entre as seleções.

Entendendo a solução:

Como precisamos de um diferencial, podemos usar a própria presença física do dado na planilha, isto é, o número da linha.
Dado único para cada registro.

Com isto, teremos uma chave única para a pesquisa, ficando resolvido a restrição da repetição do dado no universo de toda a Tabela 1.

Criei apenas uma coluna a mais na planilha para este valor.(Coluna AUX.)
Esta coluna pode até ficar oculta se você quiser.

Na célula A2, verificamos se a célula A3 é como você deseja, Tabela 1 DADO 2 = Dedo

....SE SIM, A2 = número da linha
....SE NÃO, A2 = Vazio

=SE($C2=Plan2!$H$4;LIN();"")

Pronto. Já temos a nossa chave única de pesquisa.
Implementação TABELA 1 = OK

Agora vamos a Tabela 2 em outra planilha.

Argumento de pesquisa:
Você pediu que DADO 2 Tabela 1 fosse = DEDO.
Para fazer isto é indispensável colocar este argumento nas fórmulas em cada célula que for utilizada.

Aí.......semana que vem, aparece outra necessidade e é preciso trocar o argumento de pesquisa para Pé.

Alguém........vai ter que mudar todas as fórmulas.
Com 8 linhas é fácil, mas e com 8.000 linhas?

Por isto, tornei este dado um parâmetro, ou seja, Uma célula.
Ele está em H4

Nunca mais manutenções por este motivo.

Controle de linhas a serem geradas:
Como você quer que apareçam todas as linhas encontradas, mas que não fiquem linhas em branco entre elas, precisamos saber quantas linhas atendem ao seu critério de pesquisa.

Agora, a coluna AUX da Tabela 1 entra em ação.
Nela está registrado dado somente em linhas que atendem ao critério escolhido em H4, isto é, DEDO

Então, basta contarmos quantas células não são vazias nesta coluna e saberemos quantas linhas gerar nesta Tabela 2.
Só isto.

Com o argumento de pesquisa único estabelecido e com a quantidade de linhas a serem geradas, podemos agora usar a boa e velha PROCV para a pesquisa na Tabela 2 sem nenhum problema.

Coloque esta fórmula na célula A2 da Plan2:

=SE(LIN($A1)>CONT.SE(Plan1!$C$2:$C$9;$H$4);"";PROCV(MENOR(Plan1!$A$2:$A$9;LIN()-1);Plan1!$A$2:$D$9;2;FALSO))

AZUL = Controle de linhas a serem geradas.
VERMELHO = Pesquisa do critério desejado
VERDE = Seleção da célula na linha a ser trazida da Pesquisa pelo critério desejado.
................Neste caso:( 2 = DADO 1, 3 = DADO 2, 4 = DADO 3 )

Ao copiar a fórmula para as células B1 e C1 basta mudar o dado em verde.
Após a primeira linha pronta, só copiar e colar o tanto que for necessário.

Eis a sua planilha pronta!

Experimente mudar o argumento de pesquisa de DEDO para ou MÃO, e veja como fica a sua tabela.

c.q.d.

Bem, esta foi a lógica utilizada.

Aliás, não tem nada de sofisticado.
Apenas um campo servindo de chave única para pesquisa de toda a tabela.

Qualquer pergunta estou inteiramente à disposição.

Espero ter ajudado.

 
Postado : 26/07/2010 7:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Erro de digitação.

Onde se Lê: Na célula A2, verificamos se a célula A3 é como você deseja, Tabela 1 DADO 2 = Dedo

Leia-se......: Na célula A2, verificamos se a célula C2 é como você deseja, Tabela 1 DADO 2 = Dedo

 
Postado : 26/07/2010 7:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desde já, agradeço muito a ajuda MAZZAROPI, foi bastante clara a explicação. Bem, tenho mais alguns desafios naquela mesma tabela, dessa vez quero utilizar 3 critérios, ou invés de apenas 01, gostaria tambem quem um desses critérios fosse um intervalo de data, onde eu colocaria a data inicial e final, a automaticamente seria feita um filtragem de acordo com as datas que estiverem inclusas neste intervalo. Caso alguem possa me ajudar, eu ficaria muito grato.

Se alguem estiver interessado, favor deixar o e-mail, para que eu possa estar enviando a tabela que criei para ser usada como exemplo.

Abraços...

 
Postado : 10/08/2010 8:53 pm