ตัวอย่างที่ 1: สรุปยอดขายตามสี
Color Summary =
SUMMARIZE(
Sales,
'Product'[Color],
"Total Sales", SUM(Sales[Amount]),
"Total Units", SUM(Sales[Quantity])
)
ตารางที่มีคอลัมน์ Color, Total Sales, Total Units
สร้างตารางสรุปผลแบบ Group By (เหมือน Pivot Table)
SUMMARIZE สร้างตารางใหม่โดยการจัดกลุ่มข้อมูล (Grouping) ตามคอลัมน์ที่ระบุ และสามารถเพิ่มคอลัมน์คำนวณ (Extension Columns) เพื่อสรุปผลยอดรวม นับจำนวน หรือค่าทางสถิติอื่นๆ ในแต่ละกลุ่มได้
=SUMMARIZE(Table, GroupBy_Column1, [GroupBy_Column2], ..., [Name, Expression]...)
=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])) |
สร้างตารางสรุปยอดขายรายเดือนพักไว้ในตัวแปร เพื่อนำไปหาค่าเฉลี่ยรายเดือน (Average of Monthly Sales)
ใช้ SUMMARIZE(Table, Col1, Col2) เพื่อดึงคู่ Combination ของ Col1 และ Col2 ที่มีอยู่จริง (เหมือน Remove Duplicates 2 คอลัมน์)
Color Summary =
SUMMARIZE(
Sales,
'Product'[Color],
"Total Sales", SUM(Sales[Amount]),
"Total Units", SUM(Sales[Quantity])
)
ตารางที่มีคอลัมน์ Color, Total Sales, Total Units
Avg Sales per Cust =
AVERAGEX(
SUMMARIZE(Sales, Sales[CustomerID], "CustSales", SUM(Sales[Amount])), [CustSales]
)
ค่าเฉลี่ยยอดขายต่อลูกค้า 1 คน
Category Count Table =
SUMMARIZE(
Sales,
Customer[Country],
"CategoryCount", DISTINCTCOUNT(Product[Category])
)
ตารางสรุป Country และจำนวน Category
SUMMARIZECOLUMNS เป็นเวอร์ชันใหม่ที่เร็วกว่าและยืดหยุ่นกว่า แต่ใช้ได้เฉพาะในการ Query ข้อมูล (เช่น สร้าง Calculated Table หรือ DAX Query) ไม่สามารถใช้ใน Measure ที่มี Context Transition ซับซ้อนได้ (SUMMARIZE จึงยังจำเป็นใน Measure)
ใช่ Best Practice คือใช้ SUMMARIZE เพื่อ Group By เท่านั้น แล้วใช้ ADDCOLUMNS เพื่อเพิ่มคอลัมน์คำนวณ เพราะมีประสิทธิภาพดีกว่าและปลอดภัยกว่า
SUMMARIZE คือฟังก์ชันสำหรับสร้างตารางสรุปข้อมูล (Summary Table) คล้ายกับการทำ Pivot Table ใน Excel หรือ GROUP BY ใน SQL โดยเราสามารถกำหนดคอลัมน์ที่ต้องการจัดกลุ่ม (Group By) และสร้างคอลัมน์คำนวณเพิ่มได้
ตารางผลลัพธ์จาก SUMMARIZE มักถูกนำไปใช้เป็น Virtual Table เพื่อคำนวณต่อใน Measure ที่ซับซ้อน