Thep Excel

FLATTEN – แปลงข้อมูลหลายคอลัมน์ให้เป็นคอลัมน์เดียว

FLATTEN รวมข้อมูลจากหนึ่งหรือหลายช่วงเข้าด้วยกันเป็นคอลัมน์เดียว โดยเรียงลำดับแถวก่อน (Row-major order) ช่วงข้อมูลไม่จำเป็นต้องมีขนาดเดียวกัน และสามารถผสมเซลล์ เรนจ์ และค่าคงที่ได้

=FLATTEN(range1, [range2, ...])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

=FLATTEN(range1, [range2, ...])

Argument Type Required Default Description
range1 Range/Array Yes ช่วงข้อมูลแรกที่ต้องการแปลง สามารถเป็นเซลล์เดี่ยว แถว คอลัมน์ หรือตาราง 2 มิติ ได้
range2 Range/Array Optional ช่วงข้อมูลเพิ่มเติม (ตัวเลือก) ฟังก์ชันจะนำข้อมูลจาก range2 มาเรียงต่อท้าย range1 คุณสามารถเพิ่มได้ถึง 254 ช่วง

How it works

Unpivot ข้อมูล

แปลงตารางสรุป (Crosstab) กลับเป็นตารางฐานข้อมูล (Database Format) เพื่อนำไปทำ Pivot Table

รวมรายชื่อจากหลายห้อง

รวมรายชื่อนักเรียนที่อยู่คนละคอลัมน์ (เช่น ห้อง 1, ห้อง 2, ห้อง 3) ให้มาอยู่ในคอลัมน์เดียวกัน

หาค่าที่ไม่ซ้ำจากทั้งตาราง

ใช้ร่วมกับ UNIQUE เพื่อหาค่าที่ไม่ซ้ำ (Unique Values) จากช่วงข้อมูล 2 มิติ

Examples

ตัวอย่างที่ 1: แปลงตาราง 2 มิติเป็น 1 มิติ (Row-by-Row Order)
FLATTEN(A1:C2)
FLATTEN ใช้ Row-major order หมายความว่ามันเรียงข้อมูลไปแบบแถว (Row) ก่อน ถ้าข้อมูลในช่วง A1:C2 เป็นแบบนี้:

A1='Name' B1='Age' C1='City'
A2='John' B2='25' C2='BKK'

ผลลัพธ์จะออกมาเรียงแบบ: Name, Age, City, John, 25, BKK (ไม่ใช่ Name, John, Age, 25, …)

Google Sheets Formula:

=FLATTEN(A1:C2)

Result:

A1, B1, C1, A2, B2, C2

ตัวอย่างที่ 2: หาค่า Unique จากหลายคอลัมน์
UNIQUE(FLATTEN(A2:C10))
การรวม FLATTEN กับ UNIQUE นี้มีประโยชน์มากครับ เวลาคุณต้องการหาว่าในตาราง A2:C10 นี้ มีค่าไหนบ้างที่ปรากฏมากกว่า 1 ครั้ง

สมมติในตาราง มี Name 'John' อยู่ 3 ที่ อยากหายังไงให้ 'John' ปรากฏแค่ครั้งเดียวในผลลัพธ์ UNIQUE(FLATTEN(…)) ก็ช่วยได้

Google Sheets Formula:

=UNIQUE(FLATTEN(A2:C10))

Result:

รายการค่าที่ไม่ซ้ำกันทั้งหมด เรียงลงในคอลัมน์เดียว

ตัวอย่างที่ 3: ลบช่องว่างออกจากผลลัพธ์
FILTER(FLATTEN(A2:C10), FLATTEN(A2:C10) "")
FLATTEN มันปกติจะเก็บช่องว่างด้วย หากข้อมูลของคุณมีหลาย ๆ เซลล์ที่ยังเว่าว่างไว้ FILTER จะช่วยกรองเอาแค่เซลล์ที่มีข้อมูลออกมา

ในตัวอย่างนี้ FLATTEN(A2:C10) จะเรียงทั้งหมด แล้วก่อนส่งต่อให้ FILTER ประโยค FLATTEN(A2:C10) <> "" จะเก็บแค่ค่าที่ไม่เท่ากับช่องว่างเท่านั้น

Google Sheets Formula:

=FILTER(FLATTEN(A2:C10), FLATTEN(A2:C10) <> "")

Result:

รายการข้อมูลเรียงกันในคอลัมน์เดียว โดยไม่รวมช่องว่าง

ตัวอย่างที่ 4: รวมหลายช่วงจากที่ต่างกัน
FLATTEN(A1:A10, C1:C10, E1:E10)
เมื่อคุณใส่หลายช่วง FLATTEN จะเอาทั้ง range1 มาเรียงเสร็จก่อน แล้วค่อยเอา range2 มาต่อท้าย

นี่มีประโยชน์เวลาคุณต้องการรวมข้อมูลจากหลายโซนที่ไม่ติดกัน เช่น เงินฝากจากสาขา A, B, C ที่อยู่คนละเซลล์กัน

Google Sheets Formula:

=FLATTEN(A1:A10, C1:C10, E1:E10)

Result:

ค่าทั้งหมดจาก A1:A10 เรียงลงมา แล้วค่อย C1:C10 แล้ว E1:E10

FAQs

FLATTEN กับ TOCOL ต่างกันอย่างไร?

ใน Excel 365 มี TOCOL ที่ทำหน้าที่คล้ายกัน แต่ TOCOL ใน Excel มีฟีเจอร์เพิ่มเติม เช่น สามารถลบเซลล์ว่างได้ในตัว ส่วน Google Sheets’ FLATTEN ต้องใช้ FILTER ช่วยเพื่อเก็บเฉพาะเซลล์ที่ไม่ว่าง หากอยากเรียงแบบ Column-major (ลำดับคอลัมน์ก่อน) ต้องใช้ TRANSPOSE ช่วยครับ

FLATTEN เรียงลำดับข้อมูลอย่างไรกันแน่?

FLATTEN ใช้ Row-major order หมายความว่าเรียงตามแถวก่อน (Row by Row) ถ้าข้อมูล A1:C2 เป็นแบบนี้:

A1=อ B1=ข C1=ค
A2=ก B2=ค C2=ง

ผลลัพธ์จะออกมาเป็น: อ, ข, ค, ก, ค, ง (ไม่ใช่ อ, ก, ข, ค, ค, ง)

ถ้าคุณต้องการเรียงแบบ Column-major ลองใช้ TRANSPOSE(FLATTEN(…)) ดูครับ

ควรใช้ FLATTEN เมื่อไหร่?

ผมแนะนำใช้ FLATTEN ในสถานการณ์เหล่านี้:
– เวลาต้องทำ Unpivoting (เปลี่ยนจากตาราง Wide Format เป็น Long Format)
– อยากรวมข้อมูลจากหลายคอลัมน์เข้าด้วยกัน
– ต้องการหาค่า Unique จากหลายคอลัมน์ (รวม UNIQUE)
– ต้องการกรองข้อมูลจากช่วงใหญ่ๆ (รวม FILTER)

ส่วนตัวผมมักใช้ FLATTEN + UNIQUE + FILTER เป็นคอมโบเก็บเก่า ครับ 😎

Resources & Related

Additional Notes

FLATTEN เป็นฟังก์ชันที่เจ๋งจริง เพราะมันช่วยแปลงข้อมูลแบบตาราง 2 มิติ เป็นรายการ 1 มิติได้อย่างง่าย

เวลามีข้อมูลกระจายอยู่หลายคอลัมน์แล้ว ต้องการรวมมันลงเป็นคอลัมน์เดียว FLATTEN ก็ทำได้ทันที ไม่ต้องใช้ Helper Column หรือวิธีซับซ้อนอื่นๆ

ส่วนตัวผมชอบใช้ FLATTEN กับฟังก์ชันอื่นๆ เช่น UNIQUE, FILTER, QUERY เพื่อทำข้อมูลให้สะอาดและมีประโยชน์มากขึ้น ครับ

Leave a Reply

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