Como imprimir uma planilha do Excel em um layout de múltiplas colunas?

10

Na minha folha de excel eu tenho três colunas A, B, C que são muito finas, mas tem muitas linhas (> 500). Agora, se eu imprimir isso, recebo 10 páginas que estão quase vazias. Apenas na borda esquerda de cada página, vejo essas três colunas.

O que eu quero fazer é imprimir toda a folha em um layout de várias colunas. 2 ou 3 colunas por página seriam suficientes. Atualmente, estou fazendo isso copiando os valores do Excel, inserindo-os em um documento do Word e, em seguida, usando a função de layout de várias colunas do Word. Não há uma maneira de conseguir isso diretamente no Excel?

Para esclarecer meu problema: Atualmente minhas páginas parecem com isso

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

Mas o que eu quero é isso:

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
. . .     . . .     . . .
    
por RoflcoptrException 20.04.2012 / 23:29

5 respostas

10

Eu não acho que o Excel possa fazer isso. Uma solução possível é usar o Microsoft Word e contornar as colunas: Como usar colunas de snake para usar menos páginas

Using MS Word to Snake Columns (#msword)

This is probably the easiest to use for a one time usage, since I've not put in a dialog into my Excel macro described later.

  1. Select and copy columns from Excel spreadsheet.
  2. Paste into Word, this takes a few moments
  3. Select the rows to be repeated at top in the table, then indicate this in Word with Table --> Rows to repeated
  4. Select entire table using anchor, or selecting cell(s) in the table and then Table --> Select --> Table
  5. Indicate number of rows using the columns button, or Format --> Columns if you want more control over placement

Este exemplo funciona bem. A postagem também oferece outras possibilidades.

    
por 21.04.2012 / 00:44
3

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)

    
por 09.07.2018 / 19:14
0

Você pode usar uma fórmula simples:

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

para permitir que os dados fluam horizontalmente em 5 colunas.
Então você pode selecionar o tamanho da página, imprimir a primeira linha em cada página, etc.
Simples, limpo, sem necessidade de VBA.

    
por 21.07.2017 / 20:15
0

A maneira mais fácil que encontrei foi criar uma nova planilha e simplesmente recriar a tabela manualmente, separando-a 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

Copie mais de 50 linhas. Isso, então, transforma uma tabela de linha única de 100 colunas em uma tabela de 50 linhas de 2 colunas. Ajuste para atender às suas necessidades.

É claro que isso é manual e depende de que a contagem de linhas permaneça 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 do número de colunas desejado. O único problema é se a tabela original se expande além do que caberá em uma única página quando separada em colunas na nova planilha.

    
por 19.06.2018 / 11:01
0

Se você tiver o Adobe Indesign, poderá colocar o arquivo excel nele e criar esse layout com facilidade.

    
por 23.08.2018 / 15:17