DAX Function SUMX พร้อมตัวอย่างการใช้งาน

แนะนำการใช้งานฟังก์ชัน SUMX ซึ่งเป็นฟังก์ชันของ DAX (Data Analysis Expression) สามารถใช้งานใน Power BI, Power Pivot ของ Excel และ SSAS ได้ พร้อมตัวอย่างการใช้งานและไฟล์ตัวอย่างให้ Download
ภาพหน้าปกบทความ DAX Function SUMX พร้อมตัวอย่างการใช้งาน
ทักษะ (ระบุได้หลายทักษะ)

Function SUMX

ใช้สำหรับการหาผลรวมของ Expression ในแต่ละแถวของตารางที่กำหนด เช่น ต้องการนำเอา UnitPrice * Qty แล้วนำยอดมารวมกัน เป็นต้น

 

รูปแบบของ Syntax

SUMX(<table>, <expression>) 

table คือ ชื่อของตารางที่มีข้อมูลเพื่อจะทำการคำนวณ
expression คือ คำสั่ง expression ที่จะใช้ในการคำนวณในแต่ละ Row ของตาราง

การคืนค่า

ผลลัพธ์เป็นค่า 1 ค่า
 

ตัวอย่างเช่น

หากเรามีข้อมูล Table Sales ในรูป

Table Sales มีข้อมูล ID, OrderDate, ProductCode, Quantity, CostPrice, UnitPrice, Category

เราสามารถสร้าง Measure เพื่อคำนวณยอดขาย (Total Sales) และ กำไร (Margin) ได้ดังนี้
 
Total Sales = SUMX( Sales, [UnitPrice] * [Quantity] )
//คำนวณยอดขาย โดยนำ UnitPrice * Quantity ในแต่ละ Row แล้วนำมารวมกัน

Margin = SUMX( Sales, ( [UnitPrice]- [CostPrice] ) * [Quantity] )
//คำนวณกำไร โดยนำ UnitPrice -CostPrice และ * Quantity แล้วนำมารวมกัน
 
โดย Measure ดังกล่าวสามารถนำไปใช้คำนวณได้กับ Dimension ต่าง ๆ ตามที่ต้องการ เช่นการนำ Margin เทียบกับ Category หรือ เทียบกับ Month ได้เช่นกัน ดังแสดงในตัวอย่างนี้
 
 

ตัวอย่างเช่น

ตัวอย่างการใช้งาน SUMX เพื่อคำนวณ Total Sales และ Margin

Download

ไฟล์ตัวอย่างการใช้งาน DAX Function SUMX


 

DAX Measure จะช่วยเรื่องประสิทธิภาพได้

การคำนวณใน DAX นั้นเราอาจจะต้องเลือกว่าเราจะสร้างด้วย Calculated Column หรือ Measures ซึ่งในบางลักษณะของการคำนวณ อาจจะใช้ได้ทั้ง Calculated Column และ Measure แต่เราควรจะเลือกให้เหมาะสม ยกตัวอย่างเช่น การคำนวณ กำไร (Margin) ซึ่งก็คือ เอายอดขาย (SaleAmount) ลบกับ ต้นทุน (CostPrice) หากคำนวณแบบ Calculated Column เทียบกับ Measure
 
 

สร้างด้วย Calculated Column

SaleAmount = Sales[UnitPrice]*Sales[Quantity]
SaleCost = Sales[CostPrice]*Sales[Quantity]
Margin = Sales[NetSale] – Sales[SaleCost]
 
 

สร้างด้วย Measure

Margin = SUMX( Sales, ( [UnitPrice]- [CostPrice] ) * [Quantity] )
 
ในกรณีนี้จะแนะนำให้สร้างด้วย Measures เพราะจะไม่ใช้ Memory และ Disk โดยเฉพาะอย่างยิ่งในกรณีที่ข้อมูลเรามีจำนวนมาก ๆ จะมีผลความแตกต่างในเรื่องของขนาดไฟล์และประสิทธิภาพได้
 
 

อ้างอิงจากเว็บไซต์ Microsoft

https://docs.microsoft.com/en-us/dax/sumx-function-dax

บทความเกี่ยวกับ DAX ที่น่าสนใจ


 

แนะนำหลักสูตรการอบรม

เรียนรู้คำสั่ง DAX เพื่อใช้งานด้าน Data Analysis, Data Analytic, BI โดยใช้ Power BI
ในหลักสูตร Data Analysis Expression (DAX) for Power BI (2 Days)

 

และมีหลักสูตรการอบรมเกี่ยวกับ Power BI เพิ่มเติมดังนี้ :


 

หรือรูปแบบ Online ที่
Microsoft Power BI for Business Analytics (64 บทเรียน)