Note: The other languages of the website are Google-translated. Back to English

วิธีการซ้อนคอลัมน์หลายคอลัมน์เป็นคอลัมน์เดียวใน Excel ได้อย่างรวดเร็ว?

ใน Excel ฟังก์ชัน Text to Column สามารถแบ่งเซลล์ออกเป็นหลายคอลัมน์ตามตัวคั่น แต่ถ้ามีวิธีใดในการซ้อนคอลัมน์หลายคอลัมน์เป็นคอลัมน์เดียวตามภาพด้านล่างที่แสดง? ในบทความนี้ฉันจะแนะนำเทคนิคบางอย่างในการแก้ปัญหานี้อย่างรวดเร็ว
doc stack คอลัมน์เป็นหนึ่ง 1

ซ้อนคอลัมน์หลายคอลัมน์เป็นคอลัมน์เดียวด้วยสูตร

ซ้อนคอลัมน์หลายคอลัมน์เข้าด้วยกันด้วย VBA

ซ้อนคอลัมน์หลายคอลัมน์เป็นหนึ่งเดียวด้วย Transform Range ความคิดที่ดี 3


ซ้อนคอลัมน์หลายคอลัมน์เป็นคอลัมน์เดียวด้วยสูตร

1. เลือกช่วงที่คุณต้องการวางซ้อนและไปที่ไฟล์ ชื่อ: กล่อง เพื่อตั้งชื่อช่วงนี้และกด เข้าสู่ สำคัญ. ดูภาพหน้าจอ:
doc stack คอลัมน์เป็นหนึ่ง 2

2. จากนั้นเลือกเซลล์ว่างที่คุณต้องการวางผลลัพธ์ป้อนสูตรนี้ =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1)กด Enter และลากเติมที่จับลงจนกระทั่งข้อผิดพลาดปรากฏขึ้น ดูภาพหน้าจอ:
doc stack คอลัมน์เป็นหนึ่ง 3

ในสูตร MyData คือชื่อช่วงที่คุณระบุไว้ในขั้นตอนที่ 1

ซ้อนคอลัมน์หลายคอลัมน์เข้าด้วยกันด้วย VBA

นี่คือรหัส VBA ที่สามารถช่วยคุณได้เช่นกัน

1 กด Alt + F11 ปุ่มเพื่อแสดง Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2 คลิก สิ่งที่ใส่เข้าไป > โมดูลวางโค้ดด้านล่างลงในไฟล์ โมดูล.

VBA: จัดเรียงคอลัมน์เป็นหนึ่ง

Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

doc stack คอลัมน์เป็นหนึ่ง 4

3 กด F5 กุญแจสำคัญในการรันโค้ดกล่องโต้ตอบจะปรากฏขึ้นเพื่อเลือกแหล่งข้อมูลและคลิก OKเพื่อเลือกเซลล์ที่จะวางผลลัพธ์ ดูภาพหน้าจอ:
doc stack คอลัมน์เป็นหนึ่ง 5

4 คลิก OK. ตอนนี้คอลัมน์ถูกซ้อนกันในคอลัมน์เดียว
doc stack คอลัมน์เป็นหนึ่ง 6


ซ้อนคอลัมน์หลายคอลัมน์เป็นหนึ่งเดียวด้วย Transform Range

เพื่อนำไปใช้ Kutools สำหรับ Excel's ช่วงการแปลง ยูทิลิตี้ยังสามารถช่วยคุณแก้ปัญหานี้ได้อย่างรวดเร็ว

Kutools สำหรับ Excel, ที่มีมากกว่า 300 ฟังก์ชั่นที่มีประโยชน์ทำให้งานของคุณง่ายขึ้น 

หลังจาก ติดตั้งฟรี Kutools สำหรับ Excel โปรดทำดังนี้:

1. เลือกข้อมูลคอลัมน์ที่คุณใช้แล้วคลิก Kutools > พิสัย > ช่วงการแปลง. ดูภาพหน้าจอ:
doc stack คอลัมน์เป็นหนึ่ง 8

2 ใน ช่วงการแปลง โต้ตอบตรวจสอบ ช่วงเป็นคอลัมน์เดียว แล้วคลิก Okจากนั้นเลือกเซลล์เพื่อวางผลลัพธ์ ดูภาพหน้าจอ:
doc stack คอลัมน์เป็นหนึ่ง 9

3 คลิก OK. ตอนนี้คอลัมน์ถูกซ้อนกันเป็นคอลัมน์เดียว
doc stack คอลัมน์เป็นหนึ่ง 1


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (25)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณกำลังซ้อนหลายแถวเป็นคอลัมน์เดียว ไม่ใช่หลายคอลัมน์... ไม่ใช่สิ่งที่ฉันกำลังมองหา
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในการสแต็คคอลัมน์ AP ที่อยู่ในบล็อค 6 แถว ให้ใส่สูตรนี้ในเซลล์ R1 และกรอกข้อมูลลง

=OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันใช้งานได้สมบูรณ์แบบ ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับการโพสต์โซลูชันนี้! ในกรณีที่ใครก็ตามต้องการช่องว่างหลัง/ท้ายแต่ละบล็อก เพียงเพิ่มจำนวนเพิ่มเติมในแถว ดังนั้นตามตัวอย่างด้านบน ให้เขียนว่า $A$6 แทน $A$7 มันป้อนศูนย์ '0' ไปที่แถว แต่คุณสามารถ 'ใช้การเลือกสำหรับการค้นหา' ใน Sublime เพื่อแก้ไขได้อย่างง่ายดาย รู้วิธีแก้ไม่บวกศูนย์ ช่วยโพสต์ที!?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
หากต้องการส่งออกเซลล์ว่างแทนที่จะเป็น 0 ให้ทำฟังก์ชัน IF>0, TRUE-->ส่งออกเนื้อหาเซลล์ดั้งเดิม, FALSE-->output ""

=if(OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)>0,OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1),"")
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
แดง ตอนนี้มันไม่ได้ผล! ลองใช้แท็บใหม่แล้ว แต่ตอนนี้ได้กลับไปวางเนื้อหาคอลัมน์ซ้อนกันในแท็บเดียว แทนที่จะเป็นเนื้อหาแถวเดิม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ยกเลิกอันที่แล้วพลาดขั้นตอนตัดทอน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันรู้ว่าคุณตอบคำถามนี้มานานแล้ว แต่คุณช่วยอธิบายได้ไหมว่าแต่ละส่วนของฟังก์ชันนี้ทำอะไรได้บ้าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
บางทีบทช่วยสอนนี้อาจช่วยคุณได้https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่เป็นเพียงคลิกเบตเพื่อให้คุณดาวน์โหลดซอฟต์แวร์ที่ต้องชำระเงิน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
การดาวน์โหลดครั้งแรกจะใช้ได้ฟรีใน 60 วัน หลังจากนั้นคุณสามารถตัดสินใจว่าจะจ่ายสำหรับการใช้งานหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มีสิ่งใดที่จะแปลงข้อมูลข้างต้นเป็นรูปแบบต่อไปนี้ ??
1
A
ลิลลี่
2
B
จูดี้
...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับข้อความที่ฝากไว้ บทช่วยสอนนี้ https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
กำลังพูดถึงวิธีแก้ปัญหานี้ เข้าไปชมได้เลยครับ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีข้อมูลที่สิ้นสุดที่แถวเดียวกัน แต่มีหลายคอลัมน์ที่ฉันต้องการให้วางซ้อนกันในลำดับที่ข้อมูลคอลัมน์ B จะอยู่ภายใต้ข้อมูลคอลัมน์ A โดยที่ข้อมูลสิ้นสุดสำหรับคอลัมน์ A และข้อมูลคอลัมน์ C ให้อยู่ภายใต้ข้อมูลคอลัมน์ A โดยที่ข้อมูลจากคอลัมน์ B สิ้นสุดลงเป็นต้น ด้วยวิธีนี้ ฉันจะมีข้อมูลจากหลายคอลัมน์ให้พอดีกับหนึ่งคอลัมน์ ฉันจะทำอย่างนั้นได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี มีวิธีทำให้สูตรละเว้นเซลล์ว่างที่ข้อมูลของคุณอาจมีหรือไม่


=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1),


ฉันกำลังใช้แผ่นงานตัวช่วยเพื่อสร้างรายการที่ต่อเนื่องกันสำหรับรายการดรอปดาวน์การตรวจสอบความถูกต้องของข้อมูล ขอบคุณล่วงหน้า.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขออภัย ฉันไม่เก่งเรื่องสูตร คุณอาจลองใช้ Kutools สำหรับ Excel's เลือกเซลล์ที่ไม่ว่างใน Excel เพื่อเลือกเซลล์ที่ไม่ว่างในตอนแรก แล้วคัดลอกและวางไปยังตำแหน่งอื่น จากนั้นใช้วิธีข้างต้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันต้องการก้าวไปอีกขั้นกับสิ่งนี้ ฉันใช้ Stack Multiple Columns Into One With VBA รหัสและใช้งานได้ ฉันใช้ Tables เป็นซอร์สของโค้ดนี้และได้รายการมา มีวิธีทำให้ Macro ทำงานโดยอัตโนมัติหรือไม่? เมื่อฉันเพิ่มรายการใหม่ลงในตาราง Macro จะทำงานโดยอัตโนมัติและทำให้รายการผลลัพธ์เป็นปัจจุบันหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี คริส แบล็กเบิร์น ขอโทษ ฉันเกรงว่าฉันไม่พบรหัสที่สามารถเรียกใช้โดยอัตโนมัติเพื่ออัปเดตผลลัพธ์ อาจมีคนอื่นสามารถทำได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันกำลังพยายามทำสิ่งนี้บนตารางขนาดใหญ่มาก (100 คอลัมน์และแถวที่เชื่อมโยงกับสูตรทั้งหมด excel ของฉันจะโหลดต่อไปและในที่สุดก็ไม่ตอบสนอง มีวิธีใดที่จะผ่านสิ่งนี้ไปได้ ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ทอม วิธีที่คุณสมัครใช้ไม่ได้ผล วิธีที่สาม เครื่องมือช่วงการแปลงต้องสามารถทำงานได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้วิธี Stack Multiple Columns Into One With Formula และทำงานได้อย่างสมบูรณ์ แต่ฉันต้องการให้มันรักษาการจัดรูปแบบไว้ เช่น บางคอลัมน์เป็นตัวหนา & 1 เป็นไฮเปอร์ลิงก์ มีบางอย่างที่สามารถเพิ่มลงในสูตรเพื่อให้สิ่งนี้เกิดขึ้นได้หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Susan Milard สูตรของพวกเขาสามารถตอบสนองความต้องการของคุณได้ คุณสามารถใช้ VBA หรือเครื่องมือ Transpose Range ซึ่งทั้งคู่สามารถตอบสนองความต้องการของคุณได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก ตัวเลือกสูตรทำงานได้ดีมาก .. คุณประหยัดเวลาได้มาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับสูตรและ VBA แต่ไม่มีใครทำตามชื่อโพสต์ ฉันคาดหวังว่าพวกเขาจะซ้อนคอลัมน์ แต่พวกเขาย้ายแต่ละแถวเป็นคอลัมน์และกองซ้อนเหล่านั้น ... ดังนั้นจึงเป็นการซ้อนแถวที่มีการสลับสับเปลี่ยน ไม่ใช่คอลัมน์ ยังมีประโยชน์มากสำหรับบางกรณี แต่มีใครทราบวิธีแก้ไขสูตรและ/หรือ VBA เพื่อสแต็คคอลัมน์จริงหรือไม่ ฉันคิดว่าฉันสามารถย้ายช่วงอินพุตทั้งหมดแล้วใช้สิ่งเหล่านี้...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สำหรับผู้ที่ต้องการซ้อนคอลัมน์ให้เป็นหนึ่งเดียวแต่ไม่ใช่แถวเดียว คุณต้องมีภาพที่ชัดเจนของสิ่งที่คุณต้องการทำ สมมติว่าคุณมีอาร์เรย์ 3x3 คุณต้องการให้ฟังก์ชัน index() ของคุณรับรายการในรูปแบบ (แถว,คอลัมน์) สำหรับ (1,1), (2,1), (3,1), จากนั้น (1,2), (2,2), (3,2) เป็นต้นดังนั้นสิ่งที่คุณต้องการ ที่ต้องทำคือให้ index() อ้างถึงคอลัมน์เดียวที่มีหมายเลขแถวทั้งหมด (1;2;3;1;2;3;1;2;3) และคอลัมน์เดียวที่มีหมายเลขคอลัมน์ทั้งหมด (1;1 ;1;2;2;2;3;3;3).ในการรับ (1;2;3;1;2;3;1;2;3) วิธีการเขียนโปรแกรมทั่วไปคือการใช้ 1+mod(some_counter -1,3) โดยที่ฟังก์ชัน mod() ให้เศษเหลือ 0,1,2,0,1,2,...
เพื่อให้ได้ (1;1;1;2;2;2;3;3;3) เราใช้ 1+int((some_counter-1)/3) โดยจะให้ 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
ดังนั้น เพื่อให้อาร์เรย์ 3x3 ซ้อนกันเป็นหนึ่ง คุณสามารถใช้สูตร (กด Ctrl +Shft + Enter):=index( $A$1:$C$3, 1+mod(row(A1)-1,3), 1 +int((row(A1)-1)/3))) โดยที่ row(A1) ทำหน้าที่เป็นตัวนับเมื่อคุณกรอกสูตรลงไป
หากคุณวางในทางกลับกัน (แถวต่อคอลัมน์ คอลัมน์ต่อแถว) คุณจะได้แถวที่ซ้อนกันเป็นหนึ่ง column=INDEX( $A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(ROW(A1)-1,3))ซึ่งเป็นสิ่งที่สูตรในบทความนี้ทำเป็นหลัก

โดยสรุป สูตรที่ใช้ในการซ้อนคอลัมน์ในอาร์เรย์ให้เป็นคอลัมน์เดียวจะเป็น:=index( your_array_cells , 1+mod(row(A1)-1, number_of_rows_of_your_array ), 1+int((row(A1)-1 )/ number_of_columns_of_your_array)))
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL