Se você possui uma tabela de origem chamada "tabela de dados", coloque esta fórmula em uma folha extra em todas as células (onde os dados impressos devem aparecer):
=OFFSET(datatable!$A$2;(ROW()-2)+((COLUMN()-1-MOD(COLUMN()-1;3))/3*4);MOD(COLUMN()-1;3))
( O de cima é traduzido do Alemão para Inglês A fórmula alemão testada é:. =BEREICH.VERSCHIEBEN(datatable!$A$2;(ZEILE()-2)+((SPALTE()-1-REST(SPALTE()-1;3))/3*4);REST(SPALTE()-1;3))
)
resultado esperado:
Isso transformará o conteúdo da planilha "tabela de dados":
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B4 C4
A5 B5 C5
A6 B6 C6
...
para dentro:
A1 B1 C1 A5 B5 C5 ...
A2 B2 C2 A6 B6 C6 ...
A3 B3 C3 ...
A4 B4 C4 ...
Explicação:
Fundamentos:
por exemplo, OFFSET( datatable!$A$2; 3; 4 )
referencia a célula em relação a $A$2
, 3 linhas abaixo, 4 colunas à direita.
ROW()
e COLUMN()
são números, representando a posição da célula atual na planilha atual (por exemplo $A$1
: coluna 1 / linha 1, $C$2
= coluna 3 / linha 2).
O (-1)
lugar é necessário porque estamos usando deslocamentos, e a primeira linha e coluna são 1, mas queremos que a primeira célula referenciada seja $A$2
, $A$2
e não o deslocamento 1.
O (ROW()-2)
é para uma manchete no print-table / output- (É shold ser -1 se você não tem um título).
$A$2
é para um título na fonte "tabela de dados". Sem título, deve ser referenciado com $A$1
(em vez de $A$2
).
Detalhes:
O terceiro parâmetro OFFSET(...;...;MOD(COLUMN()-1;3))
é o deslocamento da coluna , sempre fará referência a uma das 3 primeiras colunas da origem "tabela de dados".
Ou seja $A$2
, o deslocamento da coluna mais 0, 1, 2, 0, 1, 2, 0, 1, 2, ...
No segundo parâmetro, OFFSET(...; (ROW()-2) + ((COLUMN()-1-MOD(COLUMN()-1;3))/3*4) ;...)
seleciona o deslocamento da linha .
Basicamente, a matemática aqui é y + x * 4.
4 é o número de linhas que você deseja exibir.
3 é o número de colunas na origem "tabela de dados".
O x é constituído pela coluna e pelo módulo 3.
COLUMN()-1
é 0, 1, 2, 3, ... e assim por diante.
MOD(COLUMN()-1;3)
será 0, 1, 2, 0, 1, 2, 0, 1, 2, ...
COLUMN()-1-MOD(COLUMN()-1;3)
será 0, 3, 6, 9, ... e assim por diante, onde o valor está sendo alterado apenas a cada terceira coluna.
A divisão por 3 resultará em 0, 1, 2, 3, ...
Multiplicação com 4 resultará em 0, 4, 8, 12, ...
(Para obter explicações sobre o Modulo , consulte também MOD()
a ajuda do excel, ou operação do módulo na wikipedia )
(Obrigado a Jake Kacher, pela ideia básica)
A maneira mais fácil que encontrei foi criar uma nova planilha e simplesmente recriar a tabela que se separa manualmente em colunas separadas.
por exemplo A1
=Sheet1!A1
B1
=Sheet1!B1
C1
=Sheet1!C1
D1 em branco (para uma coluna divisória)
então E1
=Sheet1!E51
F1
=Sheet1!B51
G1
=Sheet1!C51
E copie isso para mais de 50 linhas. Isso transforma uma tabela de 100 linhas de coluna única em uma tabela de 50 linhas de 2 colunas. Ajuste para atender às suas necessidades.
Obviamente, isso é manual e depende da contagem de linhas permanecer a mesma. Não seria difícil calcular dinamicamente o número de linhas necessárias a partir do número de linhas na tabela original e o número de colunas que você deseja. O único problema é se a tabela original se expandir além do que caberá em uma única página quando separada em colunas na nova planilha.
fonte
Se você possui o Adobe Indesign, pode colocar o arquivo excel nele e fazer esse layout com facilidade.
fonte