Si tiene una tabla fuente llamada "tabla de datos", coloque esta fórmula en una hoja adicional en cada celda (donde deberían aparecer los datos impresos):
=OFFSET(datatable!$A$2;(ROW()-2)+((COLUMN()-1-MOD(COLUMN()-1;3))/3*4);MOD(COLUMN()-1;3))
( Lo anterior se traduce del alemán al Inglés La fórmula alemán probado es:. =BEREICH.VERSCHIEBEN(datatable!$A$2;(ZEILE()-2)+((SPALTE()-1-REST(SPALTE()-1;3))/3*4);REST(SPALTE()-1;3))
)
Resultado Esperado:
Esto transformará el contenido de la hoja "tabla de datos":
A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B4 C4
A5 B5 C5
A6 B6 C6
...
dentro:
A1 B1 C1 A5 B5 C5 ...
A2 B2 C2 A6 B6 C6 ...
A3 B3 C3 ...
A4 B4 C4 ...
Explicación:
Lo esencial:
Por ejemplo, hace OFFSET( datatable!$A$2; 3; 4 )
referencia a la celda en relación con $A$2
, 3 filas hacia abajo, 4 columnas a la derecha.
ROW()
y COLUMN()
son números, que representan la posición de la celda actual en la hoja actual (por ejemplo, $A$1
= columna 1 / fila 1, $C$2
= columna 3 / fila 2).
(-1)
Todo el mundo es necesario porque estamos usando desplazamientos, y la primera fila y columna es 1, pero queremos que la primera celda referenciada sea $A$2
, no $A$2
más el desplazamiento 1.
El (ROW()-2)
es para un título en la tabla de salida / impresión (Debería ser -1 si no tiene un título).
$A$2
es para un título en la fuente "tabla de datos". Sin título, debe ser referenciado con $A$1
(en lugar de $A$2
).
Detalles:
El tercer parámetro OFFSET(...;...;MOD(COLUMN()-1;3))
es el desplazamiento de la columna , siempre hará referencia a una de las primeras 3 columnas de la "tabla de datos" de origen.
Es decir $A$2
, desplazamiento de columna más 0, 1, 2, 0, 1, 2, 0, 1, 2, ...
En el segundo parámetro OFFSET(...; (ROW()-2) + ((COLUMN()-1-MOD(COLUMN()-1;3))/3*4) ;...)
selecciona el desplazamiento de la fila .
Básicamente, la matemática aquí es y + x * 4.
4 es el número de filas que desea mostrar.
3 es el número de columnas en la fuente "tabla de datos".
La x está hecha de la columna y el módulo 3.
COLUMN()-1
es 0, 1, 2, 3, ... y así sucesivamente.
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, ... y así sucesivamente, donde el valor cambia solo cada 3ª columna.
La división por 3 dará como resultado 0, 1, 2, 3, ... La
multiplicación por 4 dará como resultado 0, 4, 8, 12, ...
(Para obtener una explicación sobre el módulo , consulte también MOD()
la ayuda de Excel o la operación del módulo en wikipedia )
(Gracias a Jake Kacher, por la idea básica)