Para completar, agora mostro como faço isso sem recorrendo ao VBA. Devo avisar que o código a seguir é complicado e é difícil escalonar com eficiência.
Vamos supor a seguinte condição inicial:
Folha1
| A | B | C | D | …
---+----+---------+---------+---------+---
1 | ID | 05/2005 | 11/2005 | 03/2006 |
2 |2345| P | V | |
3 |3789| | A | V | …
4 |4321| V | A | V |
5 |7890| | I | |
… | …
Folha2
| A | B | C |
---+----+------+---------------+
1 | ID | Date | Voting method |
2 | #1 | #2 | #3 |
A célula denominada # 1 tem a seguinte fórmula:
=INDIRECT(ADDRESS(FLOOR((ROW(A2)-2)/27 + 2,0),1,,,"Sheet1"))
O que essa fórmula faz é mapear a célula atual para as células adequadas na Planilha1. Isso é feito com a ajuda da função FLOOR
. A função aumentará em 1 sempre que 27 linhas forem passadas, mapeando corretamente as linhas na Planilha2 com o conteúdo na Planilha1.
A função ADDRESS
constrói uma referência utilizável para uma célula a partir de nomes de entrada e planilha numéricos, enquanto a função INDIRECT
recupera o conteúdo apontado pela referência.
O restante das outras funções segue um raciocínio idêntico: você usa uma função auxiliar para mapear as coordenadas da célula atual para a célula correta na Planilha1.
Para a célula chamada # 2 :
=INDIRECT(ADDRESS(1,MOD(ROW(A2)-2,27)+2,,,"Sheet1"))
Nesse caso, a função MOD
alterna sequencialmente entre 0 e 26, que é então convertida em uma sequência entre 2 e 28 (em outras palavras, onde as células com as datas são).
Finalmente, para a célula chamada # 3 :
=INDIRECT(ADDRESS(FLOOR((ROW(A2)-2)/27 + 2,0),MOD(ROW(A2)-2,27)+2,,,"Sheet1"))
É uma mistura das duas seqüências usadas antes. A razão é porque o conteúdo varia com relação ao ID (como tal, a parte da célula # 1 é chamada) e Data (que é onde a parte da célula # 2 entra).
Depois de inserir essas funções nas células corretas, basta arrastar para baixo e os resultados devem ficar aparentes, com um pequeno problema: os votos nulos também estão aparecendo.
Você pode filtrar esses resultados. Selecione o cabeçalho (neste caso, a linha A
na Folha2) e vá para Dados > Filtrar > Filtro Automático (ou o equivalente na versão do Excel que você está usando). Clique no menu suspenso na coluna do método de votação e personalize a classificação para excluir resultados que consistem em zero.