Thep Excel

UNION – รวมหลายตารางให้เป็นตารางเดียว (ต่อแถว)

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

=UNION(<table1>, <table2>[, <table3>, ...])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=UNION(<table1>, <table2>[, <table3>, ...])

Argument Type Required Default Description
table1 Table Yes ตารางแรก (จะใช้ชื่อคอลัมน์จากตารางนี้)
table2 Table Yes ตารางที่สอง (จะต่อเพิ่มเข้าไปหลังตารางแรก)
table3 Table Optional ไม่ระบุ ตารางที่สาม (และต่อเติมได้อีก)

How it works

รวมข้อมูลจากหลายตารางที่คอลัมน์เหมือนกัน

เช่น รวมยอดขายจากหลายไฟล์/หลายช่วงที่แยกตารางไว้

รวมชุดรายการเพื่อทำสรุปต่อ

รวมรายการจากหลายเงื่อนไขก่อนสรุปด้วย COUNTROWS หรือ SUMX

Examples

รวมข้อมูล Sales กับ Returns เป็นตารางเดียว
All Transactions = UNION( VALUES(Sales[ProductID]), VALUES(Returns[ProductID]) )
นำ ProductID จาก Sales และ Returns มาต่อรวมกัน ถ้าสินค้า ID ตัวเดียวมีทั้ง sales และ return ก็จะปรากฏ 2 แถว
DAX Formula:

All Transactions =
UNION(
    VALUES(Sales[ProductID]),
    VALUES(Returns[ProductID])
)

Result:

ตารางที่มี ProductID จากทั้ง Sales และ Returns รวมกัน

รวมสามตาราง (ข้อมูลปีต่างๆ)
All Years Data = UNION( VALUES(Year2022[CustomerID]), VALUES(Year2023[CustomerID]), VALUES(Year2024[CustomerID]) )
สามารถระบุตารางได้มากกว่า 2 ตัว เพื่อรวมข้อมูลหลายปีหรือหลายช่วงเวลาในครั้งเดียว
DAX Formula:

All Years Data =
UNION(
    VALUES(Year2022[CustomerID]),
    VALUES(Year2023[CustomerID]),
    VALUES(Year2024[CustomerID])
)

Result:

ตารางที่มี CustomerID จากทั้งสามปีรวมกัน

ลบแถวซ้ำด้วย DISTINCT
Unique Products = DISTINCT( UNION( VALUES(Sales[ProductID]), VALUES(Returns[ProductID]) ) )
เพราะ UNION เก็บแถวซ้ำ หากต้องการเอาซ้ำออก ให้ครอบด้วย DISTINCT
DAX Formula:

Unique Products =
DISTINCT(
    UNION(
        VALUES(Sales[ProductID]),
        VALUES(Returns[ProductID])
    )
)

Result:

ตารางที่มี ProductID ที่ไม่ซ้ำ

สร้างข้อมูลหลายคอลัมน์จากตารางต่างกัน
Combined Data = UNION( SELECTCOLUMNS(Sales, "ID", Sales[ID], "Amount", Sales[Amount]), SELECTCOLUMNS(Returns, "ID", Returns[ID], "Amount", Returns[Amount]) )
ใช้ SELECTCOLUMNS เพื่อแนวทางคอลัมน์ให้ตรงกัน (ชื่อและประเภทข้อมูล) ก่อนที่จะ UNION
DAX Formula:

Combined Data =
UNION(
    SELECTCOLUMNS(Sales, "ID", Sales[ID], "Amount", Sales[Amount]),
    SELECTCOLUMNS(Returns, "ID", Returns[ID], "Amount", Returns[Amount])
)

Result:

ตารางที่มี ID และ Amount จากทั้ง Sales และ Returns

FAQs

UNION ลบแถวซ้ำหรือไม่?

ไม่ลบ UNION เก็บแถวซ้ำไว้ทั้งหมด ต่างจาก SQL UNION ถ้าต้องการลบแถวซ้ำ ให้ใช้ DISTINCT(UNION(…))

ตารางต้องมีคอลัมน์เหมือนกันไหม?

ต้องมีจำนวนคอลัมน์เท่ากัน และชนิดข้อมูลต้องเข้ากันได้ คอลัมน์จะจับคู่ตามตำแหน่ง (position) ไม่ใช่ชื่อ

ต่างจาก JOIN อย่างไร?

UNION ต่อแนวตั้ง (append rows) JOIN ต่อแนวนอน (combine columns) เลือกตามลักษณะงาน

สามารถรวมตารางมากกว่า 2 ตัวได้ไหม?

ได้ สามารถระบุตารางได้กี่ตัวก็ได้ UNION(Table1, Table2, Table3, … )

ชื่อคอลัมน์จะเป็นอะไร?

จะใช้ชื่อคอลัมน์จากตารางแรก (table1) ตารางที่เหลือจะปรับตามตำแหน่ง

Resources & Related

Additional Notes

UNION เป็นฟังก์ชันที่ใช้รวมหลายตารางให้เป็นตารางเดียว โดยนำแถวของแต่ละตารางมาต่อรวมกันแนวตั้ง (แบบ append/stack) ซึ่งต่างจากการ join ที่ต่อแนวนอน

ประเด็นสำคัญคือ UNION เก็บแถวซ้ำไว้ทั้งหมด (duplicates retained) ต่างจาก SQL UNION ที่ลบแถวซ้ำ ถ้าต้องการลบแถวซ้ำ ให้ครอบ UNION ด้วย DISTINCT

คอลัมน์ต้องตรงกันตามตำแหน่ง (position, ไม่ใช่ชื่อ) และตารางที่ได้จะใช้ชื่อคอลัมน์จากตารางตัวแรก

ส่วนตัวผมเห็นว่า UNION จริงๆ มีประโยชน์มากเวลาต้องรวมข้อมูลจากหลายแหล่ง เช่น ข้อมูลปีต่างๆ หรือสาขาต่างๆ หรือแม้แต่รวมข้อมูล sales กับ returns ให้เป็นชุดเดียว ก่อนจะนำไปสรุปรวม 😎

Leave a Reply

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