Se você tiver uma tabela de origem chamada "datatable", coloque esta fórmula em uma folha extra em cada célula (onde os dados impressos devem aparecer):
=OFFSET(datatable!$A$2;(ROW()-2)+((COLUMN()-1-MOD(COLUMN()-1;3))/3*4);MOD(COLUMN()-1;3))
( acima é traduzido do alemão para o inglês. A fórmula alemã 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 "datatable":
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B4 C4
A5 B5 C5
A6 B6 C6
...
para:
A1 B1 C1 A5 B5 C5 ...
A2 B2 C2 A6 B6 C6 ...
A3 B3 C3 ...
A4 B4 C4 ...
Explicação:
Noções básicas:
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)
em todos os lugares é necessário porque estamos usando deslocamentos, e a primeira linha e coluna é 1, mas queremos que a primeira célula referenciada seja $A$2
, não $A$2
plus offset 1.
O (ROW()-2)
é para um título na tabela de saída / impressão (Ele deve ser -1 se você não tiver um título).
$A$2
é para um título na fonte "datatable ". 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 referenciará uma das 3 primeiras colunas da fonte "datatable".
Isso é $A$2
mais deslocamento de coluna 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 de 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 "datatable".
O x é feito da coluna e do 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á mudando apenas a cada terceira coluna.
Divisão por 3 resultará em 0, 1, 2, 3, ...
A multiplicação com 4 resultará em 0, 4, 8, 12, ...
(Para explicações sobre o Modulo , veja também MOD()
na ajuda do excel, ou modulo operation in wikipedia )
(Obrigado a Jake Kacher, pela idéia básica)