สารบัญ
บทช่วยสอนแสดงวิธีต่างๆ ในการสลับแถวเป็นคอลัมน์ใน Excel: สูตร โค้ด VBA และเครื่องมือพิเศษ
การสลับข้อมูลใน Excel เป็นงานที่ผู้ใช้หลายคนคุ้นเคย บ่อยครั้งที่คุณสร้างตารางที่ซับซ้อนเพียงเพื่อตระหนักว่าการหมุนเวียนตารางนั้นเหมาะสมอย่างยิ่งสำหรับการวิเคราะห์หรือการนำเสนอข้อมูลในกราฟที่ดีขึ้น
ในบทความนี้ คุณจะพบหลายวิธีในการแปลงแถวเป็นคอลัมน์ (หรือ คอลัมน์ไปยังแถว) ไม่ว่าคุณจะเรียกมันว่าอย่างไร มันก็เหมือนกัน :) โซลูชันเหล่านี้ทำงานใน Excel 2010 ทุกรุ่นจนถึง Excel 365 ครอบคลุมสถานการณ์ที่เป็นไปได้มากมาย และอธิบายข้อผิดพลาดทั่วไปส่วนใหญ่
แปลงแถวเป็นคอลัมน์ใน Excel โดยใช้การวางแบบพิเศษ
สมมติว่าคุณมีชุดข้อมูลที่คล้ายกับที่คุณเห็นในส่วนบนของกราฟิกด้านล่าง ชื่อประเทศจัดอยู่ในคอลัมน์ แต่รายชื่อประเทศยาวเกินไป ดังนั้นเราควรเปลี่ยนคอลัมน์เป็นแถวสำหรับตารางเพื่อให้พอดีกับหน้าจอ:
หากต้องการสลับแถวเป็นคอลัมน์ ให้ทำตามขั้นตอนเหล่านี้:
- เลือกข้อมูลต้นฉบับ หากต้องการเลือกทั้งตารางอย่างรวดเร็ว เช่น เซลล์ทั้งหมดที่มีข้อมูลในสเปรดชีต ให้กด Ctrl + หน้าแรก จากนั้นกด Ctrl + Shift + End
- คัดลอกเซลล์ที่เลือกโดยคลิกขวาที่ส่วนที่เลือกแล้วเลือก คัดลอก จากเมนูบริบทหรือโดยการกด Ctrl + C
- เลือกเซลล์แรกของช่วงปลายทาง
อย่าลืมเลือกเซลล์ที่ลองใช้สิ่งนี้และเครื่องมือระดับมืออาชีพอื่นๆ อีกกว่า 70 รายการสำหรับ Excel ฉันขอเชิญคุณดาวน์โหลด Ultimate Suite เวอร์ชันทดลองของเรา ขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
อยู่นอกช่วงที่มีข้อมูลต้นฉบับของคุณ เพื่อไม่ให้พื้นที่คัดลอกและวางทับซ้อนกัน ตัวอย่างเช่น หากปัจจุบันคุณมี 4 คอลัมน์ 10 แถว ตารางที่แปลงจะมี 10 คอลัมน์และ 4 แถว - คลิกขวาที่เซลล์ปลายทางแล้วเลือก วางแบบพิเศษ จาก เมนูบริบท จากนั้นเลือก สลับตำแหน่ง .
สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีใช้การวางแบบพิเศษใน Excel
หมายเหตุ หากแหล่งข้อมูลของคุณมีสูตร ตรวจสอบให้แน่ใจว่าคุณใช้การอ้างอิงแบบสัมพัทธ์และแบบสัมบูรณ์อย่างถูกต้อง ทั้งนี้ขึ้นอยู่กับว่าควรปรับเปลี่ยนหรือยังคงล็อกไว้เฉพาะบางเซลล์
อย่างที่คุณเพิ่งเห็น คุณลักษณะการวางแบบพิเศษช่วยให้คุณดำเนินการแปลงจากแถวสู่คอลัมน์ (หรือจากคอลัมน์ถึงแถว) ได้ในเวลาไม่กี่วินาที วิธีนี้ยังคัดลอกการจัดรูปแบบของข้อมูลต้นฉบับของคุณด้วย ซึ่งเพิ่มอาร์กิวเมนต์อีก 1 ข้อที่สนับสนุน
อย่างไรก็ตาม วิธีการนี้มี ข้อเสีย 2 ประการ ที่ทำให้ไม่สามารถเรียกว่าเป็นโซลูชันที่สมบูรณ์แบบสำหรับการสลับตำแหน่ง ข้อมูลใน Excel:
- ไม่เหมาะสำหรับการหมุนเวียนตาราง Excel ที่ทำงานได้อย่างสมบูรณ์ หากคุณคัดลอกตารางทั้งหมดแล้วเปิดกล่องโต้ตอบ วางแบบพิเศษ คุณจะพบตัวเลือก เปลี่ยนตำแหน่ง ถูกปิดใช้งาน ในกรณีนี้ คุณต้องคัดลอกตารางโดยไม่มีส่วนหัวของคอลัมน์หรือแปลงเป็นช่วงก่อน
- วางแบบพิเศษ > สลับตำแหน่ง ไม่เชื่อมโยงตารางใหม่ โต๊ะด้วยข้อมูลดั้งเดิม ดังนั้นจึงเหมาะสมอย่างยิ่งสำหรับการแปลงเพียงครั้งเดียวเท่านั้น เมื่อใดก็ตามที่แหล่งข้อมูลมีการเปลี่ยนแปลง คุณจะต้องดำเนินการซ้ำและหมุนตารางใหม่อีกครั้ง คงไม่มีใครอยากเสียเวลาไปกับการสลับแถวและคอลัมน์เดิมซ้ำแล้วซ้ำเล่าใช่ไหม
วิธีเปลี่ยนตารางและเชื่อมโยงกับข้อมูลต้นฉบับ
มา ดูวิธีเปลี่ยนแถวเป็นคอลัมน์โดยใช้เทคนิค วางแบบพิเศษ ที่คุ้นเคย แต่เชื่อมต่อตารางผลลัพธ์กับชุดข้อมูลต้นฉบับ สิ่งที่ดีที่สุดเกี่ยวกับแนวทางนี้คือเมื่อใดก็ตามที่คุณเปลี่ยนแปลงข้อมูลในตารางต้นฉบับ ตารางที่กลับด้านจะแสดงการเปลี่ยนแปลงและอัปเดตตามนั้น
- คัดลอกแถวที่คุณต้องการแปลงเป็นคอลัมน์ (หรือหลายคอลัมน์ เพื่อเปลี่ยนเป็นแถว)
- เลือกเซลล์ว่างในแผ่นงานเดียวกันหรือแผ่นงานอื่น
- เปิดกล่องโต้ตอบ วางแบบพิเศษ ตามที่อธิบายไว้ในตัวอย่างก่อนหน้า แล้วคลิก วางลิงก์ ที่มุมซ้ายล่าง:
คุณจะได้ผลลัพธ์ที่คล้ายกัน:
สิ่งนี้จะทำให้ตารางของคุณกลายเป็นสิ่งที่ น่ากลัวเล็กน้อยตามที่คุณเห็นในภาพหน้าจอด้านล่าง แต่ไม่ต้องตกใจอีกเพียง 2 ขั้นตอน คุณก็จะได้ผลลัพธ์ที่ต้องการ
วิธีนี้ค่อนข้างยาวแต่สวยงามใช่ไหม ข้อเสียเพียงประการเดียวของแนวทางนี้คือ การจัดรูปแบบต้นฉบับจะสูญหายไปในกระบวนการ และคุณจะต้องกู้คืนด้วยตนเอง (ฉันจะแสดงวิธีที่รวดเร็วในการดำเนินการนี้เพิ่มเติมในบทช่วยสอนนี้)
วิธีการ เพื่อสลับตำแหน่งใน Excel โดยใช้สูตร
วิธีที่รวดเร็วกว่าในการสลับคอลัมน์เป็นแถวแบบไดนามิกใน Excel คือการใช้สูตร TRANSPOSE หรือ INDEX/ADDRESS เช่นเดียวกับตัวอย่างก่อนหน้านี้ สูตรเหล่านี้ยังรักษาการเชื่อมต่อกับข้อมูลต้นฉบับ แต่ทำงานแตกต่างกันเล็กน้อย
เปลี่ยนแถวเป็นคอลัมน์ใน Excel โดยใช้ฟังก์ชัน TRANSPOSE
ตามชื่อที่แนะนำ ฟังก์ชัน TRANSPOSE ได้รับการออกแบบมาเป็นพิเศษสำหรับการแปลงข้อมูลใน Excel:
=TRANSPOSE(อาร์เรย์)ในตัวอย่างนี้ เราจะแปลงตารางอื่นที่แสดงรายการรัฐในสหรัฐอเมริกาตามจำนวนประชากร:
- นับจำนวนแถวและคอลัมน์ในตารางเดิมของคุณ แล้วเลือกจำนวนเซลล์ว่างเท่าเดิม แต่เลือกทิศทางอื่น
ตัวอย่างเช่น ตารางตัวอย่างของเรามี 7 คอลัมน์ 6 แถว ได้แก่หัวเรื่อง เนื่องจากฟังก์ชัน TRANSPOSE จะเปลี่ยนคอลัมน์เป็นแถว เราจึงเลือกช่วง 6 คอลัมน์และ 7 แถว
- เมื่อเลือกเซลล์ว่างแล้ว ให้พิมพ์สูตรนี้:
=TRANSPOSE(A1:G6)
- เนื่องจากสูตรของเราจำเป็นต้องใช้กับหลายเซลล์ ให้กด Ctrl + Shift + Enter เพื่อทำให้เป็นสูตรอาร์เรย์
Voila คอลัมน์คือ เปลี่ยนเป็นแถวตามที่เราต้องการ:
ข้อดีของฟังก์ชัน TRANSPOSE:
ประโยชน์หลักของการใช้ฟังก์ชัน TRANSPOSE คือ ตารางที่หมุนจะรักษาการเชื่อมต่อกับตารางต้นฉบับไว้ และเมื่อใดก็ตามที่คุณเปลี่ยนข้อมูลต้นฉบับ ตารางที่เปลี่ยนตำแหน่งจะเปลี่ยนตามไปด้วย
จุดอ่อนของฟังก์ชัน TRANSPOSE:
- การจัดรูปแบบตารางต้นฉบับไม่ได้ถูกบันทึกในตารางที่แปลงแล้ว ดังที่คุณเห็นในภาพหน้าจอด้านบน
- หากมีเซลล์ว่างใดๆ ในตารางต้นฉบับ เซลล์ที่ย้ายตำแหน่งจะมี 0 แทน ในการแก้ไขปัญหานี้ ให้ใช้ TRANSPOSE ร่วมกับฟังก์ชัน IF ตามที่อธิบายในตัวอย่างนี้: วิธีการเปลี่ยนตำแหน่งโดยไม่มีศูนย์
- คุณไม่สามารถแก้ไขเซลล์ใดๆ ในตารางที่หมุนได้ เนื่องจากเซลล์นั้นขึ้นอยู่กับข้อมูลต้นทางเป็นอย่างมาก หากคุณพยายามเปลี่ยนค่าของเซลล์ คุณจะจบลงด้วยข้อผิดพลาด "คุณไม่สามารถเปลี่ยนส่วนของอาร์เรย์ได้"
สรุป ฟังก์ชัน TRANSPOSE ที่ดีและใช้งานง่ายคืออะไร ขาดความยืดหยุ่นอย่างแน่นอน และอาจไม่ใช่สิ่งที่ดีที่สุดในหลาย ๆ สถานการณ์
สำหรับข้อมูลเพิ่มเติม โปรดดูฟังก์ชัน TRANSPOSE ของ Excel พร้อมตัวอย่าง
แปลงแถวเป็นคอลัมน์ด้วยฟังก์ชัน INDIRECT และ ADDRESS
ในตัวอย่างนี้ จะใช้สองฟังก์ชันร่วมกันซึ่งค่อนข้างยุ่งยากเล็กน้อย ดังนั้น เรามาหมุนตารางที่เล็กลงเพื่อให้สามารถโฟกัสที่สูตรได้ดีขึ้น
สมมติว่า คุณมีข้อมูลใน 4 คอลัมน์ (A - D) และ 5 แถว (1 - 5):
หากต้องการสลับคอลัมน์เป็นแถว ให้ทำดังต่อไปนี้:
- ป้อนสูตรด้านล่างในเซลล์ด้านซ้ายสุดของช่วงปลายทาง เช่น A7 แล้วกดปุ่ม Enter :
=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))
- คัดลอกสูตรไปทางขวาและลงไปยังแถวและคอลัมน์ได้มากเท่าที่จำเป็นโดยลากกากบาทสีดำเล็กๆ ที่มุมขวาล่างของเซลล์ที่เลือก:
นั่นแหละ! ในตารางที่สร้างขึ้นใหม่ คอลัมน์ทั้งหมดจะเปลี่ยนเป็นแถว
หากข้อมูลของคุณเริ่มต้นในแถวอื่นที่ไม่ใช่ 1 และคอลัมน์อื่นที่ไม่ใช่ A คุณจะต้องใช้สูตรที่ซับซ้อนกว่านี้เล็กน้อย:<3
=INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1)))
โดยที่ A1 คือเซลล์บนซ้ายสุดของตารางต้นฉบับของคุณ นอกจากนี้ โปรดคำนึงถึงการใช้การอ้างอิงเซลล์แบบสัมบูรณ์และแบบสัมพัทธ์
อย่างไรก็ตาม เซลล์ที่ถูกย้ายจะดูธรรมดาและน่าเบื่อมากเมื่อเทียบกับข้อมูลต้นฉบับ:
แต่อย่าเพิ่งผิดหวัง ปัญหานี้สามารถแก้ไขได้ง่ายๆ หากต้องการกู้คืนการจัดรูปแบบต้นฉบับ ให้ทำดังนี้:
- คัดลอกต้นฉบับตาราง
- เลือกตารางผลลัพธ์
- คลิกขวาที่ตารางผลลัพธ์แล้วเลือก ตัวเลือกการวาง > การจัดรูปแบบ .
ข้อดี : สูตรนี้เป็นวิธีที่ยืดหยุ่นมากขึ้นในการเปลี่ยนแถวเป็นคอลัมน์ใน Excel อนุญาตให้ทำการเปลี่ยนแปลงใด ๆ ในตารางที่สลับตำแหน่งได้เนื่องจากคุณใช้สูตรปกติ ไม่ใช่สูตรอาร์เรย์
ข้อบกพร่อง : ฉันเห็นเพียงข้อเดียว - การจัดรูปแบบข้อมูลลำดับหายไป แม้ว่าคุณจะกู้คืนได้อย่างรวดเร็ว ดังที่แสดงไว้ด้านบน
วิธีการทำงานของสูตรนี้
เมื่อคุณทราบวิธีใช้ชุดค่าผสม INDIRECT / ADDRESS แล้ว คุณอาจต้องการทราบข้อมูลเชิงลึกเกี่ยวกับสิ่งที่ สูตรกำลังดำเนินการจริง
ตามชื่อที่แนะนำ ฟังก์ชัน INDIRECT ใช้เพื่ออ้างอิงเซลล์โดยอ้อม แต่พลังที่แท้จริงของ INDIRECT คือมันสามารถเปลี่ยนสตริงใดๆ ให้เป็นข้อมูลอ้างอิง รวมถึงสตริงที่คุณสร้างขึ้นโดยใช้ฟังก์ชันอื่นและค่าของเซลล์อื่นๆ และนี่คือสิ่งที่เรากำลังจะทำ หากคุณกำลังติดตามสิ่งนี้ คุณจะเข้าใจส่วนที่เหลือทั้งหมดได้อย่างง่ายดาย : )
อย่างที่คุณจำได้ เราได้ใช้ฟังก์ชันอีก 3 ฟังก์ชันในสูตร - ADDRESS, COLUMN และ ROW
ฟังก์ชัน ADDRESS รับที่อยู่ของเซลล์ตามหมายเลขแถวและคอลัมน์ที่คุณระบุตามลำดับ โปรดจำลำดับ: แถวแรก - แถว สอง - คอลัมน์
ในสูตรของเรา เราใส่พิกัดในลำดับย้อนกลับ และนี่คือสิ่งที่ทำเคล็ดลับ! กล่าวคือ ส่วนนี้ของสูตร ADDRESS(COLUMN(A1),ROW(A1)) จะสลับแถวเป็นคอลัมน์ เช่น รับหมายเลขคอลัมน์และเปลี่ยนเป็นหมายเลขแถว จากนั้นนำหมายเลขแถวมาเปลี่ยนเป็นคอลัมน์ จำนวน
สุดท้าย ฟังก์ชัน INDIRECT จะส่งออกข้อมูลที่หมุน ไม่มีอะไรน่ากลัวเลยใช่ไหม
ย้ายข้อมูลใน Excel โดยใช้มาโคร VBA
หากต้องการให้การแปลงแถวเป็นคอลัมน์โดยอัตโนมัติใน Excel คุณสามารถใช้มาโครต่อไปนี้:
Sub TransposeColumnsRows () Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Please select the range to transpose" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox (แจ้ง:= "เลือกเซลล์ซ้ายบนของช่วงปลายทาง" , Title:= "เปลี่ยนแถวเป็นคอลัมน์" พิมพ์ :=8) SourceRange.Copy DestRange เลือก Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End Subหากต้องการเพิ่มมาโครในเวิร์กชีตของคุณ โปรดทำตามคำแนะนำที่อธิบายไว้ในวิธีการแทรก และรันโค้ด VBA ใน Excel
หมายเหตุ การสลับตำแหน่งด้วย VBA มีองค์ประกอบจำกัดที่ 65536 รายการ ในกรณีที่อาร์เรย์ของคุณเกินขีดจำกัดนี้ ข้อมูลพิเศษจะถูกโยนทิ้งไปอย่างเงียบๆ
วิธีใช้มาโครเพื่อแปลงแถวเป็นคอลัมน์
เมื่อใส่มาโครในสมุดงานแล้ว ให้ดำเนินการด้านล่างขั้นตอนในการหมุนตารางของคุณ:
- เปิดแผ่นงานเป้าหมาย กด Alt + F8 เลือกมาโคร TransposeColumnsRows แล้วคลิก เรียกใช้ .
เพลิดเพลินกับผลลัพธ์ :)
<3
สลับคอลัมน์และแถวด้วยเครื่องมือ Transpose
หากคุณจำเป็นต้องแปลงแถวเป็นคอลัมน์เป็นประจำ คุณอาจกำลังมองหาวิธีที่เร็วกว่าและง่ายกว่า โชคดีที่ฉันมีวิธีดังกล่าวใน Excel และผู้ใช้ Ultimate Suite คนอื่นๆ ก็เช่นกัน :)
ให้ฉันแสดงวิธีสลับแถวและคอลัมน์ใน Excel อย่างแท้จริงด้วยการคลิกไม่กี่ครั้ง:
- เลือกเซลล์ใดเซลล์หนึ่งภายในตารางของคุณ ไปที่กลุ่ม Ablebits > Transform และคลิกปุ่ม Transpose <11
หากคุณต้องการ วางค่าเท่านั้น หรือ สร้างลิงก์ไปยังแหล่งข้อมูล เพื่อบังคับให้ตารางที่หมุนเวียนอัปเดตโดยอัตโนมัติทุกครั้งที่คุณเปลี่ยนแปลงตารางต้นฉบับ ให้เลือก ตัวเลือกที่เกี่ยวข้อง
เสร็จแล้ว! ตารางถูกย้าย การจัดรูปแบบถูกรักษาไว้ ไม่จำเป็นต้องปรับแต่งเพิ่มเติม:
หากคุณสงสัย