¿Cómo imprimir una hoja de Excel en un diseño de varias columnas?


13

En mi hoja de Excel tengo tres columnas A, B, C que son muy delgadas, pero tienen muchas líneas (> 500). Ahora, si imprimo esto, obtengo 10 páginas que están casi vacías. Solo en el borde izquierdo de cada página veo estas tres columnas.

Lo que quiero hacer es imprimir toda esa hoja en un diseño de varias columnas. 2 o 3 columnas por página serían suficientes. Actualmente, lo estoy haciendo copiando los valores de Excel, insertándolos en un documento de Word y luego uso la función de diseño de varias columnas de Word. ¿No hay una manera de lograr eso directamente en Excel?

Para aclarar mi problema: actualmente mis páginas se ven así

A B C
A B C
A B C
A B C
. . .

Pero lo que quiero es esto:

A B C     A B C     A B C
A B C     A B C     A B C
A B C     A B C     A B C
. . .     . . .     . . .

Respuestas:


10

No creo que Excel pueda hacer eso. Una posible solución es usar Microsoft Word y mostrar las columnas: Cómo crear columnas para usar menos páginas

Uso de MS Word para crear columnas (#msword)

Este es probablemente el más fácil de usar para un uso único, ya que no he puesto un cuadro de diálogo en mi macro de Excel que se describe más adelante.

  1. Seleccione y copie columnas de la hoja de cálculo de Excel.
  2. Pegar en Word, esto toma unos minutos
  3. Seleccione las filas que se repetirán en la parte superior de la tabla, luego indíquelo en Word con Tabla -> Filas para repetir
  4. Seleccione toda la tabla usando el ancla, o seleccionando celdas en la tabla y luego Tabla -> Seleccionar -> Tabla
  5. Indique el número de filas con el botón de columnas o Formato -> Columnas si desea tener más control sobre la ubicación

Este ejemplo funciona bien. La publicación también ofrece otras posibilidades.


4

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$2má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$2es 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()-1es 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)


1

Puedes usar una fórmula simple:

=OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0)

para permitir que los datos fluyan horizontalmente en 5 columnas.
Luego puede seleccionar el tamaño de página, imprimir la primera fila en cada página, etc.
Simple, ordenado, no se necesita VBA.


3
Probablemente útil para un Excel Guru, pero no tengo idea de dónde pondría esto o cómo usarlo.
Anthony Nichols

1
No hace exactamente lo que se solicitó, pero no obstante es interesante. Si la columna A tenía una larga serie de números, entonces si copiaba esta fórmula para decir C, D, E, F, G y la arrastraba hacia abajo un número suficiente de filas, obtendría 5 columnas de datos más cortas. Los datos fluyen a través de las cinco columnas, mientras que espero que desee que los datos fluyan hacia abajo en cada columna y crucen. Aún así, fórmula compacta muy interesante.
loneRanger

0

La forma más fácil que encontré fue crear una nueva hoja de trabajo y simplemente recrear la tabla separándola manualmente en columnas separadas.

por ejemplo, A1 =Sheet1!A1

B1 =Sheet1!B1

C1 =Sheet1!C1

D1 en blanco (para una columna divisoria)

entonces E1 =Sheet1!E51

F1 =Sheet1!B51

G1 =Sheet1!C51

Y copie esto en más de 50 filas. Esto convierte una tabla de una columna de 100 filas en una tabla de 2 columnas de 50 filas. Ajústese a sus necesidades.

Por supuesto, esto es manual y depende de que el recuento de filas permanezca igual. No sería difícil calcular dinámicamente la cantidad de filas requeridas a partir de la cantidad de filas en la tabla original y la cantidad de columnas que desea. El único problema es si la tabla original se expande más allá de lo que cabe en una sola página cuando se separa en columnas en la nueva hoja.


0

Si tiene Adobe Indesign, puede colocar un archivo de Excel en él y hacer este diseño con facilidad.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.