จะวางข้อมูล Excel เป็นข้อความที่มีความกว้างคงที่ได้อย่างไร


15

ถ้าฉันคัดลอกข้อมูลใน Excel และวางลงในไฟล์ข้อความฉันจะได้รับแท็บระหว่างเซลล์ ไม่ดีฉันต้องการช่องว่าง - และฉันต้องการให้คอลัมน์อยู่ในแนวเดียวกัน ฉันจะบรรลุสิ่งนี้ได้อย่างไรโดยไม่ต้องใช้ความพยายามมาก (เห็นได้ชัดว่าฉันไม่ต้องการเริ่มใช้ regexps ด้วยมือ ฯลฯ )

การใช้ 'บันทึกเป็น' (เหมือนในคำถามนี้ ) ไม่ใช่วิธีแก้ปัญหาสำหรับฉันฉันต้องการคัดลอกและวาง


ฉันมีทางออกที่เป็นไปได้ที่จะเกี่ยวข้องกับการวางจากสมุดงานหนึ่งไปยังสมุดงานอื่น (จากสมุดงานอื่นไปยังที่ใดก็ตามที่คุณวาง) ไม่พอดีกับเวิร์กโฟลว์ของคุณหรือไม่
Pynner

@ พินเนอร์: ดีมันเหมาะกับการแก้ปัญหาที่ดีกว่าไม่มีเลยใช่ไปข้างหน้า
einpoklum

คำตอบ:


13

แน่นอนว่าไม่ใช่เรื่องง่ายที่จะอธิบาย ... แต่หลังจากติดตั้งแล้วมันจะทำงานด้วยความพยายามน้อยที่สุด นอกจากนี้ยังเป็นความแตกต่างเล็กน้อยในสิ่งที่ @ pnuts ได้ระบุไว้

ฉันขอแนะนำให้ใช้สเปรดชีตเทมเพลตที่คุณสามารถคัดลอกวางได้ เทมเพลตที่ฉันสร้างมี 3 แท็บที่มีลักษณะดังนี้

แท็บ

  • Data แท็บคือที่วางข้อมูล
  • Length จะทำคณิตศาสตร์บางอย่างเพื่อกำหนดคอลัมน์ที่ยาวที่สุด
  • Space insert กำลังจะใส่จำนวนช่องว่างที่เหมาะสม (แก้ไข) คุณสามารถคัดลอกจากที่นี่และรับผลลัพธ์ที่ถูกต้อง

แท็บความยาวดูเหมือน

ความยาว

แถว 1 มีอักขระสูงสุดของคอลัมน์ด้านล่างคือและมีสูตร

=MAX(A2:A101)+1

+1 สร้างตัวคั่น

แถวที่ 2 ถึง n (ซึ่งฉันได้ขยายเป็น 100 สำหรับตัวอย่างนี้) มีสูตรเพื่อประเมินความยาวของแต่ละสตริง

=LEN('Data tab'!A1)

แท็บแทรกพื้นที่ดูเหมือนว่า

แทรกพื้นที่

แต่ละเซลล์มีเซลล์เพื่อประเมินความยาวของตัวเองเปรียบเทียบกับค่าสูงสุด (+ ตัวคั่น) และแทรกจำนวนช่องว่างที่เหมาะสม

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

หมายเหตุ $ ซึ่งล็อคแถว 1 หากคุณคัดลอกและวางสูตร

(แก้ไข) คุณสามารถคัดลอกจากแท็บแทรกอวกาศ

Notepad


1
ประดิษฐ์อย่างมีเล่ห์เหลี่ยม!
einpoklum

แต่ ... ทำไมฉันถึงต้องการแผ่นงานสุดท้ายจริง ๆ ? ฉันสามารถคัดลอกวางจากแผ่นงานที่สาม นอกจากนี้ฉันไม่ต้องการใช้สูตรยาว ๆ ที่จำลองแบบสำหรับแต่ละคอลัมน์
einpoklum

ค่อนข้างถูกต้อง .. แท็บสุดท้ายไม่ต้องใช้ ... ฉันสันนิษฐานว่าเซลล์จะแทรกตัวอักษรเพิ่มเติม ฉันจะอัปเดตคำตอบของฉันเพื่อแก้ไข
Pynner

คำตอบที่ดีเยี่ยมขอบคุณมาก โดยส่วนตัวแล้วบางคอลัมน์ของฉันที่ออกมายาวมากดังนั้นฉันจึงเพิ่มหน้าด้วย "= LEFT ('ช่องว่างแทรก'! A1, $ K $ 2) & IF (ยาว! A2> $ K $ 2," ... | ", "|") "โดยที่ $ K $ 2 ถูกกำหนดเป็นค่าที่เหมาะสม (สูงสุดของคอลัมน์ที่สำคัญที่สุด) วิธีนี้ใช้งานได้ดีสำหรับคำอธิบาย ฯลฯ การห่อขั้นตอนถัดไป: p
chrispepper1989

ขั้นต่อไปคือการจัดตำแหน่งตัวเลขให้เหมาะสม
vlad_tepesch

3

ทางออกที่ง่ายที่สุดคือการเชื่อมข้อมูลตัวเลขของคุณเข้ากับสตริง "commified" ที่วางอย่างถูกต้องในไฟล์ข้อความ สร้างสูตร Excel สำหรับหนึ่งแถวแล้วคัดลอกลงสำหรับแถวทั้งหมดในแผ่นงานจากนั้นคัดลอกคอลัมน์สูตรแล้ววางลงในไฟล์ข้อความ ตัวอย่างเช่น,

ข้อมูล

เซลล์ A1: 247

เซลล์ B1: 19

เซลล์ C1: 1437

สูตรในเซลล์ D1

= A1 & " "& B1 &"" & C1

ผลลัพธ์ข้อความวางได้

247,19,1437

มีวิธีการอื่นที่ไม่พึ่งพาสูตร

  • ขั้นแรกตรวจสอบให้แน่ใจว่าคอลัมน์ข้อมูลของคุณมีความกว้างเท่ากัน
  • จากนั้นแทรกคอลัมน์อื่นระหว่างแต่ละคู่ของคอลัมน์ข้อมูลแต่ละคอลัมน์มีความกว้าง 2
  • ป้อนเครื่องหมายจุลภาคเดียวในแต่ละคอลัมน์ที่แทรกคัดลอกลงตามความยาวของข้อมูล
  • สุดท้ายให้บันทึกเวิร์กชีทเป็นไฟล์ข้อความที่จัดรูปแบบ (คั่นด้วยเว้นวรรค) (* .prn)

ประโยชน์ของทางเลือกนี้คือมันจะรักษารูปแบบข้อมูลของคุณ หากคุณต้องการจัดรูปแบบข้อมูลด้วยเครื่องหมายจุลภาคหรือเพียงแสดงทศนิยมหนึ่งตำแหน่งการจัดรูปแบบของคุณจะถูกเก็บไว้ในไฟล์ prn


1
pnuts แนะนำการปรับปรุงที่ถูกต้องอย่างแน่นอน ฉันได้อัปเดตคำตอบของฉันด้วยทางเลือกอื่นที่ใช้บันทึกเป็น
chuff

ดังนั้นอย่างที่ฉันพูดไว้ในคำถามการออมแบบไม่มีตัวเลือก โซลูชัน REPT จะทำงานกับการคัดลอกวางได้หรือไม่ นอกจากนี้ฉันยังไม่ยอมรับเพราะฉันต้องการบางสิ่งที่ยุ่งยากน้อยลง
einpoklum

0

คุณสามารถคัดลอกข้อมูลของคุณใน Word แล้วใช้การค้นหาและแทนที่ (Ctrl + H) เพื่อแทนที่แท็บด้วยช่องว่าง

  1. เปิดและวางข้อมูลใน Word
  2. กดCtrl+H
  3. เพิ่มเติม >>
  4. พิเศษ
  5. พื้นที่สีขาว
  6. ใส่ช่องว่างในการแทนที่ด้วย:
  7. แทนที่ทั้งหมด

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