Thep Excel

TRANSPOSE – กลับตาราง (Transpose)

สลับแกนของตารางข้อมูล เปลี่ยนแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ช่วยจัดโครงสร้างข้อมูลให้เหมาะกับการวิเคราะห์และนำเสนอ

=TRANSPOSE(array)

By ThepExcel AI Agent
19 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
8/10

Syntax & Arguments

=TRANSPOSE(array)

Argument Type Required Default Description
array Range/Array Yes อาร์เรย์ที่ต้องการสลับแกน

Examples

ตัวอย่างที่ 1: สลับแถวเป็นคอลัมน์ (และคอลัมน์เป็นแถว)
TRANSPOSE(OriginalData)
สมมติว่า OriginalData คือ Named Range ที่มีข้อมูล 3 แถว 2 คอลัมน์ (เช่น A1:B3)
.
สูตรจะสลับแกนข้อมูล ทำให้แถวกลายเป็นคอลัมน์และคอลัมน์กลายเป็นแถว
.
ผลลัพธ์คือตารางใหม่ที่มี 2 แถว 3 คอลัมน์ ส่วนตัวผม มักใช้วิธีนี้เวลาต้องการเปลี่ยนโครงสร้างข้อมูลให้อ่านง่ายขึ้น 💡
Excel Formula:

=TRANSPOSE(OriginalData)

Result:

ตารางขนาด 2 แถว 3 คอลัมน์

ตัวอย่างที่ 2: สลับแกน Array Constant
TRANSPOSE({1,2,3;4,5,6})
Array Constant {1,2,3;4,5,6} มี 2 แถว 3 คอลัมน์
.
สูตรจะสลับแกน ทำให้กลายเป็น 3 แถว 2 คอลัมน์ ที่เจ๋งคือผลลัพธ์เป็น Array ที่สามารถนำไปใช้ต่อกับสูตรอื่นได้ทันที 😎
Excel Formula:

=TRANSPOSE({1,2,3;4,5,6})

Result:

{1,4;2,5;3,6}

ตัวอย่างที่ 3: ใช้กับ Excel Table
TRANSPOSE(EmployeeTable[#Headers])
สมมติว่า EmployeeTable คือชื่อ Excel Table
.
สูตร TRANSPOSE จะสลับ Header ของ EmployeeTable จากแนวนอนเป็นแนวตั้ง
.
เอาจริงๆ นะครับ วิธีนี้มีประโยชน์มากเวลาต้องการสร้าง List ของ Header ในแนวตั้งเพื่อใช้ใน Dashboard หรือรายงาน 💡
Excel Formula:

=TRANSPOSE(EmployeeTable[#Headers])

Result:

Header คอลัมน์แนวตั้ง

ตัวอย่างที่ 4: TRANSPOSE ลิสต์เป็นแถว
TRANSPOSE(A1:A10)
ใช้ TRANSPOSE เพื่อเปลี่ยนลิสต์แนวตั้ง (Column) เป็นแนวนอน (Row)
.
ส่วนตัวผม ใช้วิธีนี้บ่อยมากเวลาต้องทำ Horizontal Report หรือสร้างแถวหัวตารางจากข้อมูลแนวตั้ง ✨
Excel Formula:

=TRANSPOSE(A1:A10)

Result:

แถว 1 x 10 เซลล์

ตัวอย่างที่ 5: TRANSPOSE ร่วมกับฟังก์ชันอื่น
TRANSPOSE(IF(ROWS(1:100)=1, "Header", SEQUENCE(99)))
รวม TRANSPOSE กับ IF และ SEQUENCE เพื่อสร้างแถวข้อมูล Dynamic
.
ที่เจ๋งคือสามารถใช้ร่วมกับฟังก์ชัน Array อื่นๆ ได้อย่างยืดหยุ่นมาก เหมาะสำหรับสร้างตารางแบบ Dynamic ที่ปรับขนาดอัตโนมัติ 😎
Excel Formula:

=TRANSPOSE(IF(ROWS(1:100)=1, "Header", SEQUENCE(99)))

Result:

แถวของตัวเลขพร้อม Header

FAQs

TRANSPOSE จะทำงานกับ Dynamic Array หรือไม่?

ได้ครับ ใน Excel 365 TRANSPOSE ใช้ได้เป็น Dynamic Array และจะ Spill ผลลัพธ์โดยอัตโนมัติ
.
ส่วนตัวผม พบว่าฟีเจอร์นี้ช่วยประหยัดเวลาได้มาก เพราะไม่ต้องคำนวณขนาดพื้นที่ที่จะแสดงผลลัพธ์ให้ยุ่งยาก 😎

TRANSPOSE ต่างจาก REARRANGE หรือ SORT อย่างไร?

TRANSPOSE เปลี่ยนแกนของข้อมูล (แถว ↔ คอลัมน์) ส่วน REARRANGE/SORT เรียงลำดับหรือจัดเรียงข้อมูล โดยไม่เปลี่ยนแกน
.
เอาจริงๆ นะครับ ฟังก์ชันเหล่านี้ทำงานต่างกัน แต่ใช้ร่วมกันได้ดี เช่นใช้ SORT เรียงข้อมูลก่อน แล้วค่อย TRANSPOSE เพื่อเปลี่ยนแกน

สามารถใช้ TRANSPOSE กับ 3D Array ได้ไหม?

ไม่ได้ครับ TRANSPOSE ใช้ได้เฉพาะกับ 2D Range หรือ Array เท่านั้น
.
ถ้าต้องการจัดการข้อมูล 3 มิติ แนะนำให้ใช้ฟังก์ชันอื่นร่วมด้วย เช่น FLATTEN หรือ VSTACK 💡

ถ้า TRANSPOSE ของตารางใหญ่เลยพื้นที่ว่างจะเกิดอะไร?

จะเกิด #SPILL! Error หากพื้นที่ที่สูตรต้องการแสดงผลมีข้อมูลอื่นขวางอยู่
.
วิธีแก้คือ ลบข้อมูลที่ขวาง หรือย้ายสูตรไปพื้นที่ว่าง ส่วนตัวผม มักจะวางสูตรในพื้นที่ที่แน่ใจว่าว่างเปล่าเสมอ เพื่อป้องกัน Error นี้ 😅

TRANSPOSE ใช้ได้กับเซลล์ที่ Merged ไหม?

ไม่แนะนำครับ เพราะ TRANSPOSE อาจให้ผลลัพธ์ที่ไม่คาดหวัง
.
ที่ต้องระวังคือ ควรใช้กับข้อมูลที่ไม่มี Merged Cells เพื่อความแม่นยำ ถ้าจำเป็นต้องใช้ ควร Unmerge ก่อน

TRANSPOSE ใช้ได้กับ Tables/ListObjects ไหม?

ได้ครับ เช่น =TRANSPOSE(Table1) จะสลับ Table ทั้งตาราง รวมถึง Headers ด้วย
.
ส่วนตัวผม ชอบใช้วิธีนี้เพื่อสร้าง Summary Report จากตาราง Excel แบบรวดเร็ว โดยไม่ต้องคัดลอกข้อมูลมาวางใหม่ ✨

Resources & Related

Resources

Additional Notes

TRANSPOSE ใช้สลับแกนของตารางข้อมูล (แถวกลายเป็นคอลัมน์ คอลัมน์กลายเป็นแถว)
.
ที่เจ๋งคือ TRANSPOSE ใช้งานง่ายมาก เพียงใส่ Range หรือ Array เดียว ก็สลับแกนได้ทันที
.
ส่วนตัวผม ใช้บ่อยมากเวลาต้องเปลี่ยนโครงสร้างตารางให้เหมาะกับการนำเสนอ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *