การสร้าง DAX Measures ใน Power BI

การคำนวณใน DAX (Data Analysis Expression) เป็นส่วนที่สำคัญมาก ๆ ใน Power BI, SSAS, Power Pivot โดย Measures เป็นเรื่องสำคัญเรื่องหนึ่งที่คนเริ่มต้นกับ Power BI อาจจะยังไม่เข้าใจหลักการและการใช้งาน ในบทความนี้เราจะมาเรียนรู้การสร้าง Measures กัน
ภาพหน้าปกบทความ การสร้าง DAX Measures ใน Power BI
ทักษะ (ระบุได้หลายทักษะ)

การสร้าง DAX Measures ใน Power BI

Measures เป็นเรื่องสำคัญเรื่องหนึ่งที่คนเริ่มต้นกับ Power BI อาจจะยังไม่เข้าใจหลักการและการใช้งาน ในบทความนี้เราจะมาเรียนรู้การสร้าง Measures กัน
 
สำหรับการทำงานกับ Power BI, Power Pivot, SQL Analysis Service Tabular Data Model นั้น DAX (Data Analysis Expression) การคำนวณมีด้วยกัน 3 ประเภทคือ Column, Measures และ Table ซึ่งสามารถดูรายละเอียดในบทความ DAX Measures และ Calculated Columns
 
 

รู้จักกับ DAX Measures

Measures ใช้สำหรับการทำงานด้าน Data Analysis เพื่อทำการคำนวณต่าง ๆ มักจะไปใช้กับการทำ Aggregation ต่าง ๆ การคำนวณที่ซับซ้อน การหา Percentage ซึ่การทำงานจะรวดเร็ว ไม่ทำให้ไฟล์ใหญ่ขึ้น ซึ่งใน Power BI จะมีการสร้าง Automatic Measures ให้อัตโนมัติ สำหรับ Field ที่เป็นตัวเลข ก็จะมีการทำ Summarization ด้วยสูตร SUM และจะมีเครื่องหมาย ∑ นำหน้า ซึ่งจะเรียกว่า Implicit Measure แต่หากเราสร้างเองก็จะเรียกว่า Explicit Measure
 
สัญลักษณ์ที่แสดงใน Field List จะแสดงให้เห็นสัญลักษณ์ดังนี้

สัญลักษณ์ของ Implicit Measure และ Explicit Measure

ข้อแนะนำในการนำ DAX Measure ไปใช้งาน

  • นำไปใช้สร้างการคำนวณกลุ่ม Aggregate เช่น SUM, COUNT, MAX, MIN หรือ SUMX, COUNTX, RANKX เป็นต้น
  • การคำนวณซับซ้อน
  • การคำนวณ Percentage การคำนวณ Ratio
  • Time Intelligence

 
 

รูปแบบของ DAX Measure

MeasureName = DAX expression for measure
 
 

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

Margin % = SUM(Orders[Margin])/SUM(Orders[NetSales]))

ตัวอย่างการสร้าง Measure Margin Percent


 

การสร้าง DAX Measure

ขั้นตอนการสร้าง Measure สามารถทำได้ดังนี้

  1. คลิกที่มุมมอง Report View
  2. ป้าย Modeling
  3. คลิก New measure
 


 

การสร้าง DAX Measure โดยคลิกที่ ป้าย Modeling เลือกคำสั่ง New measure


หรือ ที่ มุมมอง Data View และ Model View จะอยู่ที่ป้าย Table tools

การสร้าง DAX Measure โดยคลิกที่ ป้าย Table tools เลือกคำสั่ง New measure

จากนั้นทำการใส่สูตรการคำนวณ โดยในตัวอย่างนี้ เป็นการสร้าง measures ชื่อ Total Sales เพื่อทำการคำนวณนำเอา ราคาต่อหน่วย [UnitPrice] คูณ กับ จำนวนหน่วย [Quantity] และลด ส่วนลด [Discount] โดยคูณด้วย 1-[Discount]
 
Total Sale = SUMX(Orders,[UnitPrice]*[Quantity]*(1-[Discount]))

การสร้าง measures ชื่อ Total Sales เพื่อทำการคำนวณยอดขายรวม

ดูรายละเอียดการคำนวณสูตร SUMX ของ DAX ที่บทความ ฟังก์ชัน SUMX ของ DAX
 

การกำหนด Home Table ให้ Measure

Home Table เป็นเสมือนตารางที่เป็นที่เก็บของ Measures นั้น โดยหาก Measures อยู่ใน Table ใด สามารถอ้างถึง Column โดยไม่ต้องระบุชื่อ Table ได้ เช่น
 
หาก สร้าง Measure ที่อยู่ใน Table Sales จะสามารถเขียนแบบย่อได้คือ
Total Sales = SUM([Sale Amount])
แต่หากอยู่คนละ Table จำเป็นต้องเขียนแบบเต็ม (Full Qualification) ดังนี้
Total Sales = SUM(Sales[Sale Amount])
 

ขั้นตอนการสร้าง Home Table

ตัวอย่างการกำหนด Home Table ให้กับ Measure

การกำหนด Home Table ให้ Measure ทำได้ดังนี้

  1. คลิกเลือก Measures ที่ต้องการ
  2. ป้าย Measure tool
  3. เลือก Home table ไปยัง ตาราง ที่ต้องการ


 

การกำหนด Display Folder ให้ Measure

Display folder จะทำให้การจัดเก็บ Measure เป็นระเบียบ ไม่ปะปนกับ Field ของ ข้อมูลทำให้เรียกใช้ได้ง่าย และยังบริหารจัดการได้สะดวก
 
การกำหนด Display Folder ทำได้ดังนี้

  1. ที่มุมมอง Model View
  2. คลิกที่ Measure ที่ต้องการกำหนด Display Folder
  3. กำหนด Display Folder ใน Properties Pane


ดังตัวอย่างในวิดีโอนี้

การกำหนด Display folder ชื่อว่า Measures ให้กับ 2 Measures


 

การกำหนด Formatting ให้ Measure

การกำหนดรูปแบบการแสดงผลของการคำนวณใน Measure ก็จำเป็นจะต้องกำหนดรูปแบบ (Formatting) และ Data Type ที่เหมาะสม กับข้อมูล เพื่อจะได้นำไปใช้ในการสร้างรายงาน (Report) ของ Power BI ต่อไป

 


 

ตัวอย่างการกำหนด Formatting ให้กับ Measure

การกำหนด Formatting ให้ Measure ทำได้ดังนี้

  1. คลิกเลือก Measures ที่ต้องการ
  2. ป้าย Measure tool
  3. เลือก Formatting ที่ต้องการ เช่น กำหนดจำนวนทศนิยมกี่ตำแหน่ง เป็นต้น

ซึ่งรูปแบบดังกล่าวจะเป็นค่าตั้งต้นในการแสดงผลในการแสดง Report ของ Power BI ต่อไป

 

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

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

สร้างด้วย Calculated Column

SaleAmount = Sales[UnitPrice]*Sales[Quantity]
NetSale = Sales[SaleAmount]*[1-Sales[Discount])
SaleCost = Sales[CostPrice]*Sales[Quantity]
Margin = Sales[NetSale] – Sales[SaleCost]
 
 

สร้างด้วย Measure

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

 

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

เรียนรู้คำสั่ง 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 บทเรียน)