Notifications
Clear all

Replicar uma celula para outra tabela

21 Posts
3 Usuários
0 Reactions
3,157 Visualizações
 kall
(@kall)
Posts: 10
Active Member
Topic starter
 

Boa noite

Primeiro gostaria de pedir desculpas, caso ja exista uma resposta para essa duvida no forum, o problema é que eu nem sei quais termos usar na busca para achar isso.
Tambem não sei exatamente se a minha duvida é relativa a formulas e funções, mas acredito que sim.

O que preciso fazer é o seguinte
A primeira Tabele se chama Product Backlog, em cada linha eu descrevo as atividades e na coluna I eu determino a qual Sprint aquela demanda pertence com números; 1, 2, 3...
A segunda tabela se chama Sprint 1, a terceira tabela Sprint 3, a quarta tabela Sprint 4 e assim por diante...

gostaria de automatizar o preenchimento das tabelas de Sprint. Eu descrevo a atividade no Product Backlog e quando defino a qual sprint ele pertence na coluna I, automaticamente o nome da demanda seria replicado para tabela de Sprint correspondente.

segue um print da tabela:

Alguma sugestão de como fazer isso? se é que é possível é claro.

Abs

 
Postado : 25/01/2014 5:04 pm
 kall
(@kall)
Posts: 10
Active Member
Topic starter
 

Obrigado gtsalikis!
Na verdade você fez até mais do que eu precisava, você acrescentou o tipo de demanda também.

Vamos la, entendi que essa expressão tem duas partes, a prima puxa a informação da coluna !A da planilha Product backlog Eletros

=SEERRO("["&INDIRETO("'PRODUCT BACKLOG ELETROS'!A"&MENOR(SE(SUBSTITUIR('PRODUCT BACKLOG ELETROS'!I$10:I$88;1;"R")="R";LIN('PRODUCT BACKLOG ELETROS'!I$10:I$88));LINS($10:10)))&"] "

Entendi que o que esta entre aspas é texto que será inserido na tabela

"["

E essa expressão é o que busca o conteudo

INDIRETO("'PRODUCT BACKLOG ELETROS'!A"&MENOR(SE(SUBSTITUIR('PRODUCT BACKLOG ELETROS'!I$10:I$88;1;"R")="R";LIN('PRODUCT BACKLOG ELETROS'!I$10:I$88));LINS($10:10)))

Entendi que ele varre da linha 10 a linha 88, então caso eu queira aumentar o backlog para 100 linhas por exemplo, basta alterar para !I$10:I$100, correto?
Apesar disso, não entendi como a expressão le a coluna I e interpreta a diferença entre R, 1, 2, 3, 4...
E a segunda parte é totalmente semelhantes a primeira excluindo as "[" "]" e alterando para !C

Agora MANDRIX, entendi o que você me passou, e até já tinha tentando isso, mas não sei porque não esta funcionando. Apliquei sua função na primeira linha do Sprint 1 e fucionou, mas ao selecionar e arrastar para baixo, não funcionou.

Provavelmente tem a ver com as chaves {}, notei que a expressão do gtsalikis aparece entre chaves na parte que ele fez. E tambem notei que a expressão que voce me passou tambem esta entre chaves.
Nao consigo escrever dessa forma, o Excel não aceita

 
Postado : 01/02/2014 4:58 pm
 kall
(@kall)
Posts: 10
Active Member
Topic starter
 

Perfeito camaradas MANDRIX e gtsalikis

Sabia que essas chaves {} eram o problema, busquei no próprio site da Microsoft a razão dessas chaves existirem e entendi que se tratam de uma formula matriz e para concluir a formula é necessário usar CTR + SHIFT + ENTER

Esta tudo funcionando! Muito obrigado mesmo a ajuda de vocês!

 
Postado : 01/02/2014 5:09 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Apesar disso, não entendi como a expressão le a coluna I e interpreta a diferença entre R, 1, 2, 3, 4...
E a segunda parte é totalmente semelhantes a primeira excluindo as "[" "]" e alterando para !C

Kall, apesar de vc ter dito que já entendeu, ainda respondendo a tua pergunta de como a fórmula funciona:

É um tanto complexo entender, embora vc já conheceu as funções matriciais, será útil que vc conheça como as 7 funções q utilizei trabalham e para que servem, e acompanhe a fórmula pela ferramenta de "avaliar fórmulas" do Excel, mas, em síntese, vamos pegar por essa parte:

INDIRETO("'PRODUCT BACKLOG ELETROS'!A"&MENOR(SE(SUBSTITUIR('PRODUCT BACKLOG ELETROS'!I$10:I$88;1;"R")="R";LIN('PRODUCT BACKLOG ELETROS'!I$10:I$88));LINS($10:10)))

eu usei uma função LIN para escolher a linha que será copiada, porém, essa escolha depende de uma condição, por isso eu usei um SE, o que seria assim:

se o valor de I10 for igual a R, então me dê o valor da linha I10 (que seria 10, pois é o número da linha).

Porém, eu coloquei em matricial, no range I10:I88 (o que seria dizer, para cada valor de I10 até I88, se ele for = R, me dê o valor da linha correspondente.

Aí entra outra questão, vc tinha 2 variáveis, que poderiam ser "R" ou 1 (2, 3, 4...)

Nisso eu usei a função SUBSTITUIR, para que todos os valores 1 (2, 3, 4) fossem transformados em valor "R", assim, dentro da fórmula, eu trabalho apenas com uma variável.

Então, como eu precisava pegar todas as linhas, em ordem, da menor para a maior, eu usei a função MENOR, que escolhe em ordem de valores, do menor para o maior, o que eu indicar. Por isso, joguei tudo o que fiz acima dentro da função MENOR.

Como a função MENOR exige que eu indique qual a ordem na escala do menor para o maior eu quero, eu usei a função LINS(que conta o número de linhas selecionadas). Amarei o início e não o fim, veja que está como $10:10 (o cifrão indica que a primeira linha está fixa, mas a segunda não), ou seja, a soma das linhas 10:10 é 1. Ao arrastar para a linha de baixo, vai ficar $10:11 (lembre, a primeira é fixa, a segunda acompanha a mudança de linhas), e assim, eu tenho 2 linhas (10 e 11), ou seja, o valor 2.

isso vai colocando em ordem os valores que eu quero que retornem na consulta acima.

Porém, essa consulta acima, apenas me indica a linha que contém a informação desejada, e não a célula (u seja, eu tenho a linha, mas não a coluna).

Mas, já que a coluna é sempre a mesma, eu usei INDIRETO para me indicar a coluna. Assim, a referência da célula seria , por exemplo: 'PRODUCT BACKLOG ELETROS'!A5. Com INDIRETO, eu coloquei 'PRODUCT BACKLOG ELETROS'!A + a linha que retorna da conluta, que, nesse exemplo seria a linha 5.

E, voilà: tenho o resultado que vc procurava.

A partir disso, repeti a mesma coisa, apenas com a outra coluna, que também me traz a demanda, e combinei com o sinal de CONCATENAR, que é &

Para isso, inseri os colchetes, como vc já identificou, usando aspas.

Para fechar, tem um porém: uma hora as linhas da consulta acabam, e então vc teria uma mensagem de erro. Para isso, finalizei com um SEERRO (para tratar o erro e não mostrar nada).

Espero que tenha ajudado, apesar de uma explicação resumida.

Se tiver alguma dúvida, só perguntar. Se não tiver, mais nenhuma, por favor, peça pra moderação fechar o tópico.

Abs

 
Postado : 03/02/2014 1:54 pm
 kall
(@kall)
Posts: 10
Active Member
Topic starter
 

gtsalikis Obrigado pela resposta!

Como voce disse, é um resumo, e eu entendi a concatenação de funções que você usou para chegar a solução.

Logicamente eu gostaria de entender como você começou a construção da forma, mas pelo visto, seria uma explicação longa demais e eu deveria ter conhecimento prévio sobre as funções matriciais que existem.

Sobre essa ferramenta de avaliar formulas que eu desconheço. Ela se encontra dentro do Excel?

Obrigado!

 
Postado : 03/02/2014 2:05 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Sim, existe,

considerando Excel 2007 e superior:

Selecione a célula com a fórmula, depois

No ribbon (o menu superior), clique em FÓRMULAS,

procure uma seção "Auditoria de Fórmulas"

Nela, vc vai ver um botão com uma lupa e um sinal de função, que é a ferramenta "Avaliar Fórmula".

Ela vai te mostrar o passo a passo da solução da fórmula selecionada.

 
Postado : 03/02/2014 2:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 03/02/2014 2:41 pm
Página 2 / 2