วิธีการพิมพ์แผ่นงาน 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 -> แถวที่จะทำซ้ำ
  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)) )

ผลลัพธ์ที่คาดหวัง:

สิ่งนี้จะแปลงเนื้อหาของแผ่นข้อมูล "datatable":

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))คือคอลัมน์ออฟเซ็ตซึ่งจะอ้างอิงหนึ่งในสามคอลัมน์แรกของแหล่งข้อมูล "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 คือจำนวน colums ในแหล่งข้อมูล "datatable"

x ทำจากคอลัมน์และโมดูโล 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 หรือมอดุโลในวิกิพีเดีย )

(ขอบคุณ Jake Kacher สำหรับแนวคิดพื้นฐาน)


1

คุณสามารถใช้สูตรง่าย ๆ :

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

เพื่อให้การไหลของข้อมูลในแนวนอนใน 5 คอลัมน์
จากนั้นคุณสามารถเลือกขนาดหน้าพิมพ์แถวแรกในแต่ละหน้าเป็นต้น
ง่ายๆไม่ต้องใช้ VBA


3
อาจมีประโยชน์สำหรับ Excel Guru - แต่ฉันไม่รู้ว่าจะใส่อะไรไว้หรือวิธีใช้
Anthony Nichols

1
ไม่ได้ทำสิ่งที่ขออย่างแน่นอน แต่น่าสนใจไม่น้อยถ้าคอลัมน์ A มีชุดตัวเลขที่ยาวดังนั้นถ้าคุณคัดลอกสูตรนี้เพื่อพูดว่า C, D, E, F, G และลากลงไปในจำนวนที่เพียงพอ ของแถวคุณจะได้รับข้อมูลคอลัมน์ที่สั้นกว่า 5 คอลัมน์ ข้อมูลไหลผ่านทั้งห้าคอลัมน์ในขณะที่ฉันคาดหวังว่าคุณต้องการให้ข้อมูลไหลลงแต่ละคอลัมน์และข้ามงู สูตรกระทัดรัดที่น่าสนใจมาก
loneRanger

0

วิธีที่ง่ายที่สุดที่ฉันพบคือการสร้างแผ่นงานใหม่และเพียงสร้างตารางขึ้นใหม่ด้วยตนเองโดยแยกออกเป็นคอลัมน์ต่างๆ

เช่น A1 =Sheet1!A1

B1 =Sheet1!B1

C1 =Sheet1!C1

D1 ว่าง (สำหรับคอลัมน์ตัวแบ่ง)

จากนั้น E1 =Sheet1!E51

F1 =Sheet1!B51

G1 =Sheet1!C51

และคัดลอกมันลงไปกว่า 50 แถว จากนั้นจะเปลี่ยนตารางคอลัมน์ 100 แถวเดี่ยวเป็นตาราง 2 คอลัมน์ 50 แถว ปรับให้เหมาะกับความต้องการของคุณ

แน่นอนว่านี่คือคู่มือและขึ้นอยู่กับจำนวนแถวที่เหลืออยู่เดิม การคำนวณจำนวนแถวที่ต้องการจากจำนวนแถวในตารางดั้งเดิมและจำนวนคอลัมน์ที่คุณต้องการนั้นเป็นเรื่องยาก ปัญหาเดียวคือถ้าตารางต้นฉบับขยายเกินกว่าที่จะพอดีกับหน้าเดียวเมื่อแยกออกเป็นคอลัมน์ในแผ่นงานใหม่


0

หากคุณมี Adobe Indesign คุณสามารถวางไฟล์ excel ลงไปและสร้างเลย์เอาต์นี้ได้อย่างง่ายดาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.