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

บทความโดย: 9Expert Team

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

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

9Expert Team 1 นาที

Function SUMX

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

รูปแบบของ Syntax

SUMX(<table>, <expression>) 

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

การคืนค่า

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

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

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

alt="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

หลักสูตรที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง