Як надрукувати аркуш Excel у розкладі з декількома стовпцями?


13

У моєму листі excel у мене три колонки A, B, C, які дуже тонкі, але мають багато рядків (> 500). Тепер, якщо я надрукую це, я отримаю 10 сторінок, які майже порожні. Лише на лівій окантовці кожної сторінки я бачу ці три колонки.

Те, що я хочу зробити, - це надрукувати цілий аркуш у багатоколонній макетці. 2 або 3 стовпчики на сторінці буде достатньо. В даний час я це роблю, копіюючи значення з Excel, вставляючи їх у документ Word, а потім використовую функцію компонування у багато стовпців Word. Чи не існує способу досягти цього безпосередньо в Excel?

Щоб уточнити свою проблему: наразі мої сторінки виглядають так

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     A B C
A B C     A B C     A B C
. . .     . . .     . . .

Відповіді:


10

Я не думаю, що Excel може це зробити. Можлива обробка - використовувати Microsoft Word і зміювати колонки навколо: Як зміїти стовпці, щоб використовувати менше сторінок

Використання MS Word для зміїних стовпців (#msword)

Це, мабуть, найпростіший для одноразового використання, оскільки я не вводив діалог у свій макрос Excel, описаний пізніше.

  1. Виберіть і скопіюйте стовпці з електронної таблиці Excel.
  2. Вставте в Word, це займає кілька моментів
  3. Виберіть рядки, які потрібно повторити вгорі в таблиці, а потім позначте це у Word with Table -> Rows to repeat
  4. Виберіть всю таблицю за допомогою якоря або вибравши комірки в таблиці, а потім Таблиця -> Вибрати -> Таблиця
  5. Укажіть кількість рядків за допомогою кнопки стовпців або Формат -> Стовпці, якщо ви хочете більше контролювати розташування

Цей приклад добре працює. Пост також пропонує інші можливості.


4

Якщо у вас є вихідна таблиця під назвою "datatable", покладіть цю формулу на додатковий аркуш у кожну комірку (де мають бути надруковані дані):

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

( Вище переводяться з німецької на англійську тестованих німецької формулу :. =BEREICH.VERSCHIEBEN(datatable!$A$2;(ZEILE()-2)+((SPALTE()-1-REST(SPALTE()-1;3))/3*4);REST(SPALTE()-1;3)) )

Очікуваний результат:

Це перетворить зміст аркуша "дані":

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

в:

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

Пояснення:

Основи:

наприклад, OFFSET( datatable!$A$2; 3; 4 )посилання на комірку щодо $A$2, 3 рядки вниз, 4 стовпчики праворуч.

ROW()і COLUMN()є числами, що представляють положення поточної комірки в поточному аркуші (наприклад, $A$1= стовпець 1 / рядок 1, $C$2= стовпець 3 / рядок 2).

(-1)Скрізь необхідні , тому що ми використовуємо зміщення, а перший рядок і стовпець 1, але ми хочемо , щоб перший зазначена осередок буде $A$2, чи не $A$2плюс зміщення 1.

Це (ROW()-2)для заголовка в таблиці виводу / друку (воно повинно бути -1, якщо у вас немає заголовка).
$A$2є для заголовка у джерелі "datatable". Без заголовка на нього слід посилатися $A$1(замість $A$2).

Деталі:

3-й параметр OFFSET(...;...;MOD(COLUMN()-1;3))- це зміщення стовпця , він завжди посилатиметься на один із перших 3 стовпців джерела "datatable".
Це $A$2плюс зміщення стовпців 0, 1, 2, 0, 1, 2, 0, 1, 2, ...

У 2-му параметрі OFFSET(...; (ROW()-2) + ((COLUMN()-1-MOD(COLUMN()-1;3))/3*4) ;...)вибирається зміщення рядка .
В основному математика тут y + x * 4.

4 - кількість рядків, які ви хочете відобразити.
3 - кількість стовпців у вихідному "даних".

Х складається з стовпця, а модуль 3.
COLUMN()-1дорівнює 0, 1, 2, 3, ... і так далі.
MOD(COLUMN()-1;3)буде 0, 1, 2, 0, 1, 2, 0, 1, 2, ...

COLUMN()-1-MOD(COLUMN()-1;3)буде 0, 3, 6, 9, ... і так далі, де значення змінюється лише для кожного 3-го стовпця.
Ділення на 3 призведе до 0, 1, 2, 3, ...
Множення на 4 призведе до 0, 4, 8, 12, ...

(Пояснення щодо Modulo див. MOD()У довідці excel або операції з модулем у wikipedia )

(Дякую Джейку Качеру, за основну ідею)


1

Ви можете використовувати просту формулу:

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

щоб дані перетікали горизонтально в 5 стовпців.
Потім ви можете вибрати розмір сторінки, надрукувати перший рядок на кожній сторінці тощо.
Простий, акуратний, VBA не потрібен.


3
Можливо, корисний для гуру Excel - але я не маю уявлення, куди б це поставити чи як ним користуватися.
Ентоні Ніколс

1
Не точно виконує те, що вимагали, але тим не менш цікаво. Якщо у стовпці А була довга серія чисел, то якщо ви скопіювали цю формулу, щоб сказати C, D, E, F, G, та перетягнули її достатньою кількістю рядків, ви отримаєте 5 коротших стовпців даних. Дані перебігають через п’ять стовпців, але я думаю, що ви хотіли, щоб вони перетікали вниз по кожному стовпчику та змії. Все-таки дуже цікава компактна формула.
loneRanger

0

Найпростіший спосіб, який я знайшов, - створити новий робочий аркуш і просто відтворити таблицю вручну, розділившись на окремі стовпці.

наприклад А1 =Sheet1!A1

В1 =Sheet1!B1

С1 =Sheet1!C1

D1 порожній (для стовпчика-роздільника)

то E1 =Sheet1!E51

F1 =Sheet1!B51

G1 =Sheet1!C51

І скопіюйте це вниз на 50 рядків. Потім це перетворює одну стовпчикову таблицю з 100 рядками в таблицю з двома стовпцями 50 рядків. Підлаштовуйте під свої потреби.

Звичайно, це вручну, і залежить від кількості рядків, які залишаться однаковими. Динамічно обчислити кількість рядків, необхідних від кількості рядків у початковій таблиці та кількості потрібних стовпців, було б непросто. Єдине питання полягає в тому, якщо оригінальна таблиця буде виходити за рамки того, що вміститься на одній сторінці, коли вона буде розділена на стовпці на новому аркуші.


0

Якщо у вас є Adobe Indesign, ви можете розмістити в ньому файл excel і легко створити цей макет.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.