Come stampare un foglio Excel in un layout a più colonne?


13

Nel mio foglio Excel ho tre colonne A, B, C che sono molto sottili, ma hanno molte linee (> 500). Ora, se lo stampo, ottengo 10 pagine che sono quasi vuote. Solo sul bordo sinistro di ogni pagina vedo queste tre colonne.

Quello che voglio fare è stampare l'intero foglio in un layout a più colonne. 2 o 3 colonne per pagina sarebbero sufficienti. Attualmente, lo sto facendo copiando i valori da Excel, inserendoli in un documento di Word e quindi utilizzando la funzione di layout a più colonne di Word. Non esiste un modo per ottenerlo direttamente in Excel?

Per chiarire il mio problema: attualmente le mie pagine sembrano così

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

Ma quello che voglio è questo:

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
. . .     . . .     . . .

Risposte:


10

Non penso che Excel possa farlo. Una possibile soluzione consiste nell'utilizzare Microsoft Word e inserire le colonne in circolo: come utilizzare le colonne per utilizzare meno pagine

Utilizzo di MS Word per creare colonne (#msword)

Questo è probabilmente il più facile da usare per un utilizzo una volta, dal momento che non ho inserito una finestra di dialogo nella mia macro di Excel descritta più avanti.

  1. Seleziona e copia le colonne dal foglio di calcolo Excel.
  2. Incolla in Word, questo richiede alcuni istanti
  3. Seleziona le righe da ripetere nella parte superiore della tabella, quindi indica ciò in Word con Tabella -> Righe da ripetere
  4. Seleziona l'intera tabella usando l'ancoraggio o selezionando le celle nella tabella e quindi Tabella -> Seleziona -> Tabella
  5. Indica il numero di righe utilizzando il pulsante colonne o Formato -> Colonne se desideri un maggiore controllo sul posizionamento

Questo esempio funziona bene. Il post offre anche altre possibilità.


4

Se hai una tabella di origine chiamata "datatable", inserisci questa formula su un foglio aggiuntivo in ogni cella (dove dovrebbero apparire i dati stampati):

=OFFSET(datatable!$A$2;(ROW()-2)+((COLUMN()-1-MOD(COLUMN()-1;3))/3*4);MOD(COLUMN()-1;3))

( Quanto sopra si traduce dal tedesco in inglese tedesco Formula testata è:. =BEREICH.VERSCHIEBEN(datatable!$A$2;(ZEILE()-2)+((SPALTE()-1-REST(SPALTE()-1;3))/3*4);REST(SPALTE()-1;3)) )

Risultato atteso:

Ciò trasformerà il contenuto del foglio "datatable":

A1 B1 C1
A2 B2 C2
A3 B3 C3
A4 B4 C4
A5 B5 C5
A6 B6 C6
...

in:

A1 B1 C1    A5 B5 C5    ...
A2 B2 C2    A6 B6 C6    ...
A3 B3 C3    ...
A4 B4 C4    ...

Spiegazione:

Nozioni di base:

ad es. fa OFFSET( datatable!$A$2; 3; 4 )riferimento alla cella relativa a $A$2, 3 righe in basso, 4 colonne a destra.

ROW()e COLUMN()sono numeri che rappresentano la posizione della cella corrente nel foglio corrente (ad es. $A$1= colonna 1 / riga 1, $C$2= colonna 3 / riga 2).

Le (-1)dovunque sono necessarie perché stiamo usando gli offset, e la prima riga e colonna è 1, ma vogliamo che sia la prima cella di riferimento $A$2, non $A$2più l'offset 1.

Il (ROW()-2)è per un titolo in / print-tavolo output-(E shold essere -1 se non si dispone di un titolo).
$A$2è per un titolo nell'origine "datatable". Senza titolo dovrebbe essere referenziato con $A$1(anziché $A$2).

Dettagli:

Il terzo parametro OFFSET(...;...;MOD(COLUMN()-1;3))è l' offset della colonna , farà sempre riferimento a una delle prime 3 colonne dell'origine "datatable".
Questo è l' $A$2offset della colonna più 0, 1, 2, 0, 1, 2, 0, 1, 2, ...

Nel secondo parametro OFFSET(...; (ROW()-2) + ((COLUMN()-1-MOD(COLUMN()-1;3))/3*4) ;...)seleziona l' offset di riga .
Fondamentalmente la matematica qui è y + x * 4.

4 è il numero di righe che si desidera visualizzare.
3 è il numero di colonne nell'origine "datatable".

La x è composta dalla colonna e il modulo 3.
COLUMN()-1è 0, 1, 2, 3, ... e così via.
MOD(COLUMN()-1;3)sarà 0, 1, 2, 0, 1, 2, 0, 1, 2, ...

COLUMN()-1-MOD(COLUMN()-1;3)sarà 0, 3, 6, 9, ... e così via, dove il valore cambia solo ogni 3a colonna.
La divisione per 3 comporterà 0, 1, 2, 3, ...
La moltiplicazione per 4 comporterà 0, 4, 8, 12, ...

(Per spiegazioni su Modulo , vedere anche MOD()nella guida di Excel, o operazione modulo in wikipedia )

(Grazie a Jake Kacher, per l'idea di base)


1

Puoi usare una formula semplice:

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

per consentire ai dati di fluire orizzontalmente in 5 colonne.
Quindi puoi selezionare le dimensioni della pagina, stampare la prima riga su ogni pagina, ecc.
Semplice, pulito, non è necessario VBA.


3
Probabilmente utile per un guru di Excel, ma non ho idea di dove lo metterei o di come usarlo.
Anthony Nichols,

1
Non fa esattamente quello che è stato richiesto, ma è comunque interessante.Se la colonna A aveva una lunga serie di numeri, quindi se hai copiato questa formula per dire C, D, E, F, G e trascinata giù un numero sufficiente di righe, otterrai 5 colonne di dati più brevi. I dati fluiscono attraverso le cinque colonne, mentre mi aspetto che tu volessi che i dati scendessero lungo ciascuna colonna e attraversassero il serpente. Formula compatta molto interessante.
loneRanger,

0

Il modo più semplice che ho trovato è stato quello di creare un nuovo foglio di lavoro e ricreare semplicemente la tabella separandola manualmente in colonne separate.

ad es. A1 =Sheet1!A1

B1 =Sheet1!B1

C1 =Sheet1!C1

D1 vuoto (per una colonna divisoria)

quindi E1 =Sheet1!E51

F1 =Sheet1!B51

G1 =Sheet1!C51

E copia questo in oltre 50 righe. Ciò trasforma quindi una tabella a 100 righe a colonna singola in una tabella a 50 righe a 2 colonne. Adatta in base alle tue esigenze.

Naturalmente questo è manuale e dipende dal fatto che il conteggio delle righe rimanga lo stesso. Non sarebbe difficile calcolare dinamicamente il numero di righe richieste dal numero di righe nella tabella originale e il numero di colonne desiderate. L'unico problema è se la tabella originale si espande oltre ciò che si adatterà su una singola pagina quando viene separata in colonne sul nuovo foglio.


0

Se hai Adobe Indesign, puoi inserire il file Excel in esso e creare facilmente questo layout.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.