วิธีสลับคอลัมน์และแถวใน Excel

  • แบ่งปันสิ่งนี้
Michael Brown

บทช่วยสอนแสดงวิธีต่างๆ ในการสลับแถวเป็นคอลัมน์ใน Excel: สูตร โค้ด VBA และเครื่องมือพิเศษ

การสลับข้อมูลใน Excel เป็นงานที่ผู้ใช้หลายคนคุ้นเคย บ่อยครั้งที่คุณสร้างตารางที่ซับซ้อนเพียงเพื่อตระหนักว่าการหมุนเวียนตารางนั้นเหมาะสมอย่างยิ่งสำหรับการวิเคราะห์หรือการนำเสนอข้อมูลในกราฟที่ดีขึ้น

ในบทความนี้ คุณจะพบหลายวิธีในการแปลงแถวเป็นคอลัมน์ (หรือ คอลัมน์ไปยังแถว) ไม่ว่าคุณจะเรียกมันว่าอย่างไร มันก็เหมือนกัน :) โซลูชันเหล่านี้ทำงานใน Excel 2010 ทุกรุ่นจนถึง Excel 365 ครอบคลุมสถานการณ์ที่เป็นไปได้มากมาย และอธิบายข้อผิดพลาดทั่วไปส่วนใหญ่

    แปลงแถวเป็นคอลัมน์ใน Excel โดยใช้การวางแบบพิเศษ

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

    หากต้องการสลับแถวเป็นคอลัมน์ ให้ทำตามขั้นตอนเหล่านี้:

    1. เลือกข้อมูลต้นฉบับ หากต้องการเลือกทั้งตารางอย่างรวดเร็ว เช่น เซลล์ทั้งหมดที่มีข้อมูลในสเปรดชีต ให้กด Ctrl + หน้าแรก จากนั้นกด Ctrl + Shift + End
    2. คัดลอกเซลล์ที่เลือกโดยคลิกขวาที่ส่วนที่เลือกแล้วเลือก คัดลอก จากเมนูบริบทหรือโดยการกด Ctrl + C
    3. เลือกเซลล์แรกของช่วงปลายทาง

      อย่าลืมเลือกเซลล์ที่ลองใช้สิ่งนี้และเครื่องมือระดับมืออาชีพอื่นๆ อีกกว่า 70 รายการสำหรับ Excel ฉันขอเชิญคุณดาวน์โหลด Ultimate Suite เวอร์ชันทดลองของเรา ขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

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

    สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีใช้การวางแบบพิเศษใน Excel

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

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

    อย่างไรก็ตาม วิธีการนี้มี ข้อเสีย 2 ประการ ที่ทำให้ไม่สามารถเรียกว่าเป็นโซลูชันที่สมบูรณ์แบบสำหรับการสลับตำแหน่ง ข้อมูลใน Excel:

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

    วิธีเปลี่ยนตารางและเชื่อมโยงกับข้อมูลต้นฉบับ

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

    1. คัดลอกแถวที่คุณต้องการแปลงเป็นคอลัมน์ (หรือหลายคอลัมน์ เพื่อเปลี่ยนเป็นแถว)
    2. เลือกเซลล์ว่างในแผ่นงานเดียวกันหรือแผ่นงานอื่น
    3. เปิดกล่องโต้ตอบ วางแบบพิเศษ ตามที่อธิบายไว้ในตัวอย่างก่อนหน้า แล้วคลิก วางลิงก์ ที่มุมซ้ายล่าง:

    คุณจะได้ผลลัพธ์ที่คล้ายกัน:

  • เลือกตารางใหม่และเปิดกล่องโต้ตอบค้นหาและแทนที่ของ Excel (หรือกด Ctrl + H เพื่อไปที่แท็บ แทนที่ ทันที)
  • แทนที่ทั้งหมด " =" อักขระที่มี "xxx" หรืออักขระอื่นๆ ที่ไม่มีอยู่ในข้อมูลจริงของคุณ
  • สิ่งนี้จะทำให้ตารางของคุณกลายเป็นสิ่งที่ น่ากลัวเล็กน้อยตามที่คุณเห็นในภาพหน้าจอด้านล่าง แต่ไม่ต้องตกใจอีกเพียง 2 ขั้นตอน คุณก็จะได้ผลลัพธ์ที่ต้องการ

  • คัดลอกตารางที่มีค่า "xxx" แล้วใช้ วางแบบพิเศษ > ย้ายตำแหน่ง เพื่อพลิกคอลัมน์เป็นแถว
  • สุดท้าย เปิดกล่องโต้ตอบ ค้นหาและแทนที่ อีกครั้งเพื่อย้อนกลับการเปลี่ยนแปลง เช่น แทนที่ "xxx" ทั้งหมดด้วย "=" เพื่อกู้คืน ลิงก์ไปยังเซลล์ดั้งเดิม
  • วิธีนี้ค่อนข้างยาวแต่สวยงามใช่ไหม ข้อเสียเพียงประการเดียวของแนวทางนี้คือ การจัดรูปแบบต้นฉบับจะสูญหายไปในกระบวนการ และคุณจะต้องกู้คืนด้วยตนเอง (ฉันจะแสดงวิธีที่รวดเร็วในการดำเนินการนี้เพิ่มเติมในบทช่วยสอนนี้)

    วิธีการ เพื่อสลับตำแหน่งใน Excel โดยใช้สูตร

    วิธีที่รวดเร็วกว่าในการสลับคอลัมน์เป็นแถวแบบไดนามิกใน Excel คือการใช้สูตร TRANSPOSE หรือ INDEX/ADDRESS เช่นเดียวกับตัวอย่างก่อนหน้านี้ สูตรเหล่านี้ยังรักษาการเชื่อมต่อกับข้อมูลต้นฉบับ แต่ทำงานแตกต่างกันเล็กน้อย

    เปลี่ยนแถวเป็นคอลัมน์ใน Excel โดยใช้ฟังก์ชัน TRANSPOSE

    ตามชื่อที่แนะนำ ฟังก์ชัน TRANSPOSE ได้รับการออกแบบมาเป็นพิเศษสำหรับการแปลงข้อมูลใน Excel:

    =TRANSPOSE(อาร์เรย์)

    ในตัวอย่างนี้ เราจะแปลงตารางอื่นที่แสดงรายการรัฐในสหรัฐอเมริกาตามจำนวนประชากร:

    1. นับจำนวนแถวและคอลัมน์ในตารางเดิมของคุณ แล้วเลือกจำนวนเซลล์ว่างเท่าเดิม แต่เลือกทิศทางอื่น

      ตัวอย่างเช่น ตารางตัวอย่างของเรามี 7 คอลัมน์ 6 แถว ได้แก่หัวเรื่อง เนื่องจากฟังก์ชัน TRANSPOSE จะเปลี่ยนคอลัมน์เป็นแถว เราจึงเลือกช่วง 6 คอลัมน์และ 7 แถว

    2. เมื่อเลือกเซลล์ว่างแล้ว ให้พิมพ์สูตรนี้:

      =TRANSPOSE(A1:G6)

    3. เนื่องจากสูตรของเราจำเป็นต้องใช้กับหลายเซลล์ ให้กด Ctrl + Shift + Enter เพื่อทำให้เป็นสูตรอาร์เรย์

    Voila คอลัมน์คือ เปลี่ยนเป็นแถวตามที่เราต้องการ:

    ข้อดีของฟังก์ชัน TRANSPOSE:

    ประโยชน์หลักของการใช้ฟังก์ชัน TRANSPOSE คือ ตารางที่หมุนจะรักษาการเชื่อมต่อกับตารางต้นฉบับไว้ และเมื่อใดก็ตามที่คุณเปลี่ยนข้อมูลต้นฉบับ ตารางที่เปลี่ยนตำแหน่งจะเปลี่ยนตามไปด้วย

    จุดอ่อนของฟังก์ชัน TRANSPOSE:

    • การจัดรูปแบบตารางต้นฉบับไม่ได้ถูกบันทึกในตารางที่แปลงแล้ว ดังที่คุณเห็นในภาพหน้าจอด้านบน
    • หากมีเซลล์ว่างใดๆ ในตารางต้นฉบับ เซลล์ที่ย้ายตำแหน่งจะมี 0 แทน ในการแก้ไขปัญหานี้ ให้ใช้ TRANSPOSE ร่วมกับฟังก์ชัน IF ตามที่อธิบายในตัวอย่างนี้: วิธีการเปลี่ยนตำแหน่งโดยไม่มีศูนย์
    • คุณไม่สามารถแก้ไขเซลล์ใดๆ ในตารางที่หมุนได้ เนื่องจากเซลล์นั้นขึ้นอยู่กับข้อมูลต้นทางเป็นอย่างมาก หากคุณพยายามเปลี่ยนค่าของเซลล์ คุณจะจบลงด้วยข้อผิดพลาด "คุณไม่สามารถเปลี่ยนส่วนของอาร์เรย์ได้"

    สรุป ฟังก์ชัน TRANSPOSE ที่ดีและใช้งานง่ายคืออะไร ขาดความยืดหยุ่นอย่างแน่นอน และอาจไม่ใช่สิ่งที่ดีที่สุดในหลาย ๆ สถานการณ์

    สำหรับข้อมูลเพิ่มเติม โปรดดูฟังก์ชัน TRANSPOSE ของ Excel พร้อมตัวอย่าง

    แปลงแถวเป็นคอลัมน์ด้วยฟังก์ชัน INDIRECT และ ADDRESS

    ในตัวอย่างนี้ จะใช้สองฟังก์ชันร่วมกันซึ่งค่อนข้างยุ่งยากเล็กน้อย ดังนั้น เรามาหมุนตารางที่เล็กลงเพื่อให้สามารถโฟกัสที่สูตรได้ดีขึ้น

    สมมติว่า คุณมีข้อมูลใน 4 คอลัมน์ (A - D) และ 5 แถว (1 - 5):

    หากต้องการสลับคอลัมน์เป็นแถว ให้ทำดังต่อไปนี้:

    1. ป้อนสูตรด้านล่างในเซลล์ด้านซ้ายสุดของช่วงปลายทาง เช่น A7 แล้วกดปุ่ม Enter :

      =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

    2. คัดลอกสูตรไปทางขวาและลงไปยังแถวและคอลัมน์ได้มากเท่าที่จำเป็นโดยลากกากบาทสีดำเล็กๆ ที่มุมขวาล่างของเซลล์ที่เลือก:

    นั่นแหละ! ในตารางที่สร้างขึ้นใหม่ คอลัมน์ทั้งหมดจะเปลี่ยนเป็นแถว

    หากข้อมูลของคุณเริ่มต้นในแถวอื่นที่ไม่ใช่ 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 รายการ ในกรณีที่อาร์เรย์ของคุณเกินขีดจำกัดนี้ ข้อมูลพิเศษจะถูกโยนทิ้งไปอย่างเงียบๆ

    วิธีใช้มาโครเพื่อแปลงแถวเป็นคอลัมน์

    เมื่อใส่มาโครในสมุดงานแล้ว ให้ดำเนินการด้านล่างขั้นตอนในการหมุนตารางของคุณ:

    1. เปิดแผ่นงานเป้าหมาย กด Alt + F8 เลือกมาโคร TransposeColumnsRows แล้วคลิก เรียกใช้ .

  • เลือกช่วงที่คุณต้องการสลับแถวและคอลัมน์ แล้วคลิก ตกลง :
  • เลือกเซลล์ซ้ายบนของช่วงปลายทางแล้วคลิก ตกลง :
  • เพลิดเพลินกับผลลัพธ์ :)

    <3

    สลับคอลัมน์และแถวด้วยเครื่องมือ Transpose

    หากคุณจำเป็นต้องแปลงแถวเป็นคอลัมน์เป็นประจำ คุณอาจกำลังมองหาวิธีที่เร็วกว่าและง่ายกว่า โชคดีที่ฉันมีวิธีดังกล่าวใน Excel และผู้ใช้ Ultimate Suite คนอื่นๆ ก็เช่นกัน :)

    ให้ฉันแสดงวิธีสลับแถวและคอลัมน์ใน Excel อย่างแท้จริงด้วยการคลิกไม่กี่ครั้ง:

    1. เลือกเซลล์ใดเซลล์หนึ่งภายในตารางของคุณ ไปที่กลุ่ม Ablebits > Transform และคลิกปุ่ม Transpose <11

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

    เสร็จแล้ว! ตารางถูกย้าย การจัดรูปแบบถูกรักษาไว้ ไม่จำเป็นต้องปรับแต่งเพิ่มเติม:

    หากคุณสงสัย

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้