Coluna de espelhamento em folha separada no Excel 2010

5

Estou tentando espelhar uma coluna de uma planilha do excel para outra dentro do mesmo livro do Excel. O objetivo é ter a segunda atualização da planilha quando a primeira planilha for editada. Basicamente, ao adicionar / remover linhas na primeira folha, ele fará o mesmo automaticamente na segunda folha.

Minha coluna tem nomes de funcionários e, à medida que as pessoas entram / saem do escritório, eu as adicionarei / removerei de acordo. Minhas planilhas rastreiam dados diferentes, mas os funcionários são todos iguais. Minha primeira planilha é a planilha primária e o restante puxa os dados de acordo. Uma fórmula de espelhamento funcionaria? Além disso, como você o aplica à coluna inteira?

    
por jarret 10.08.2013 / 01:03

2 respostas

2

Aqui vai uma ideia sem o VBA: "offset".

Digamos que seus dados originais estejam em "Sheet1" e você queira espelhar todas as células em "Sheet2". Para qualquer célula na Planilha2, você pode usar:

=OFFSET(Sheet1!$A$1,Row(A1)-1,COLUMN(A1)-1,1,1)
  • Sheet1!$A$1 : é sua principal célula de referência. Esta é a única célula que você não pode mover ou excluir. Você pode deixar a coluna 1 em branco e ocultá-la, para evitar que isso aconteça.
  • Row(A1)-1 : "Linha (A1)" vai descobrir em qual linha da Folha2 você está. "-1" é para neutralizar o deslocamento (você não quer ler a mesma linha em que está, não a seguinte ).
  • COLUMN(A1)-1 : o mesmo que acima, mas para descobrir sua coluna.
  • ,1,1) : define o tamanho do intervalo para uma célula (1 por)

Contanto que você não remova sua célula principal de referência (A1, para este exemplo), acredito que deve funcionar, não importa o que você faça na Planilha1.

Alguns problemas que você pode encontrar com este método:

  1. Se houver espaços em branco entre os dados (na Planilha1), algumas formatações ou fórmulas adicionais podem ser necessárias, para evitar a exibição de muitos zeros.
  2. Se você tentar usar alguma fórmula como "counta" ou "average", os resultados poderão ser alterados por esses zeros (você pode ocultá-los, mas eles ainda afetarão as fórmulas.
por 24.07.2014 / 13:55
1

isso não pode ser feito com uma fórmula simples. Se você adicionar ou remover linhas na Planilha1, uma fórmula não será suficiente para adicionar ou remover linhas na Planilha2. Você precisa de uma abordagem diferente para isso.

Uma opção é criar o VBA que gerencia a exclusão e a adição de novas linhas.

Outra maneira pode ser ocultar as linhas em vez de excluí-las. Adicione uma coluna na qual um funcionário esteja marcado como ativo ou inativo. Em seguida, filtre a tabela para ocultar os funcionários inativos.

Uma fórmula pode ser usada para puxar os nomes de Sheet1 para Sheet2, e também puxar os valores de ativo / inativo para cada linha. Por exemplo, se o nome estiver na coluna A da planilha1, use isso na Planilha2

= index (Folha1! $ A: $ A, linha ())

Se o status (ativo / inativo) estiver na coluna B, use =index(Sheet1!$A:$A,row()) em outra coluna e, em seguida, filtre nessa coluna.

Há um grande perigo inerente: Se a ordem dos funcionários for alterada na Planilha1, os dados da Planilha2 estarão todos errados. A ordem dos funcionários ainda corresponderá à ordem na Planilha1, mas o restante dos dados não será transportado com a nova ordem de classificação.

Uma abordagem com o VBA seria mais robusta.

    
por 11.08.2013 / 01:55