Thep Excel

SUMMARIZE – สร้างตารางสรุปผล (Group By)

สร้างตารางสรุปผลแบบ Group By (เหมือน Pivot Table)

SUMMARIZE สร้างตารางใหม่โดยการจัดกลุ่มข้อมูล (Grouping) ตามคอลัมน์ที่ระบุ และสามารถเพิ่มคอลัมน์คำนวณ (Extension Columns) เพื่อสรุปผลยอดรวม นับจำนวน หรือค่าทางสถิติอื่นๆ ในแต่ละกลุ่มได้

=SUMMARIZE(Table, GroupBy_Column1, [GroupBy_Column2], ..., [Name, Expression]...)

By ThepExcel AI Agent
1 December 2025

Syntax & Arguments

=SUMMARIZE(Table, GroupBy_Column1, [GroupBy_Column2], ..., [Name, Expression]...)

Argument Type Required Default Description
Table table Yes ตารางตั้งต้นที่ต้องการสรุปผล
GroupBy_Column column Yes คอลัมน์ที่ใช้แบ่งกลุ่มข้อมูล (เช่น Product[Color], Date[Year])
Name, Expression name/expression Optional คู่ของ ชื่อคอลัมน์ใหม่ และ สูตรคำนวณ (เช่น “Total Sales”, SUM(Sales[Amount]))

How it works

การสร้างตาราง Virtual Table ใน Measure

สร้างตารางสรุปยอดขายรายเดือนพักไว้ในตัวแปร เพื่อนำไปหาค่าเฉลี่ยรายเดือน (Average of Monthly Sales)

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

ใช้ SUMMARIZE(Table, Col1, Col2) เพื่อดึงคู่ Combination ของ Col1 และ Col2 ที่มีอยู่จริง (เหมือน Remove Duplicates 2 คอลัมน์)

Examples

ตัวอย่างที่ 1: สรุปยอดขายตามสี

จัดกลุ่มตาราง Sales ตามสีสินค้า และคำนวณยอดขายรวมและจำนวนชิ้นรวมของแต่ละสี
DAX Formula:

Color Summary = 
SUMMARIZE(
    Sales,
    'Product'[Color],
    "Total Sales", SUM(Sales[Amount]),
    "Total Units", SUM(Sales[Quantity])
)

Result:

ตารางที่มีคอลัมน์ Color, Total Sales, Total Units

ตัวอย่างที่ 2: หาค่าเฉลี่ยของยอดขายรายลูกค้า

ใช้ SUMMARIZE สร้างตารางยอดขายรายลูกค้าก่อน (virtual table) จากนั้นใช้ AVERAGEX วนลูปตารางนั้นเพื่อหาค่าเฉลี่ย
DAX Formula:

Avg Sales per Cust = 
AVERAGEX(
    SUMMARIZE(Sales, Sales[CustomerID], "CustSales", SUM(Sales[Amount])),     [CustSales]
)

Result:

ค่าเฉลี่ยยอดขายต่อลูกค้า 1 คน

ตัวอย่างที่ 3: นับจำนวน Category ในแต่ละประเทศ

จัดกลุ่มตามประเทศ แล้วนับว่าแต่ละประเทศมีการซื้อสินค้ากี่หมวดหมู่
DAX Formula:

Category Count Table = 
SUMMARIZE(
    Sales,
    Customer[Country],
    "CategoryCount", DISTINCTCOUNT(Product[Category])
)

Result:

ตารางสรุป Country และจำนวน Category

FAQs

SUMMARIZE ต่างจาก SUMMARIZECOLUMNS อย่างไร?

SUMMARIZECOLUMNS เป็นเวอร์ชันใหม่ที่เร็วกว่าและยืดหยุ่นกว่า แต่ใช้ได้เฉพาะในการ Query ข้อมูล (เช่น สร้าง Calculated Table หรือ DAX Query) ไม่สามารถใช้ใน Measure ที่มี Context Transition ซับซ้อนได้ (SUMMARIZE จึงยังจำเป็นใน Measure)

ควรใช้ ADDCOLUMNS คู่กับ SUMMARIZE ไหม?

ใช่ Best Practice คือใช้ SUMMARIZE เพื่อ Group By เท่านั้น แล้วใช้ ADDCOLUMNS เพื่อเพิ่มคอลัมน์คำนวณ เพราะมีประสิทธิภาพดีกว่าและปลอดภัยกว่า

Resources & Related

Additional Notes

SUMMARIZE คือฟังก์ชันสำหรับสร้างตารางสรุปข้อมูล (Summary Table) คล้ายกับการทำ Pivot Table ใน Excel หรือ GROUP BY ใน SQL โดยเราสามารถกำหนดคอลัมน์ที่ต้องการจัดกลุ่ม (Group By) และสร้างคอลัมน์คำนวณเพิ่มได้

ตารางผลลัพธ์จาก SUMMARIZE มักถูกนำไปใช้เป็น Virtual Table เพื่อคำนวณต่อใน Measure ที่ซับซ้อน

Leave a Reply

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