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

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

สิ่งสำคัญของการใช้งาน Power BI ที่ขาดไม่ได้และเป็นเรื่องสำคัญมาก ๆ อย่างหนึ่งนั้นคือ DAX (Data Analysis Expressions) ซึ่งจะมาช่วยคำนวณสรุปผลข้อมูลที่มี โดย DAX จะถูกไปใช้ในการคำนวณ 3 ส่วนหลัก ๆ ได้แก่

  1. Measures – สร้างการคำนวณในรูปแบบของ Aggregation หลาย ๆ แถวในตาราง
  2. Calculated columns – สร้างการคำนวณให้เกิดคอลัมน์ใหม่ เป็นการคำนวณแบบทีละแถว
  3. Calculated table – สร้างการคำนวณให้เกิดตารางใหม่


 

DAX Function CALCULATE

ประเมินค่าจาก expression หรือสูตร ภายใต้ชุดของ filter ที่กำหนด

รูปแบบของ Syntax

CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])

พารามิเตอร์

พารามิเตอร์รายละเอียด
expressionเป็นชื่อ measure ที่มีสร้างไว้อยู่แล้ว หรือสูตรที่เหมาะสม สำหรับการประเมิน
filter1, filter2Boolean expression หรือ ตัวกรองในรูปแบบตาราง หรือฟังก์ชันสำหรับปรับเปลี่ยนตัวกรอง (ไม่บังคับเป็นทางเลือก)

โดย Parameter filter สามารถระบุได้ 3 แบบ ดังนี้

  • Boolean filter expressions คือ expression ที่ได้ผลเป็น Boolean (True/False) เช่น CATEGORIES[CategoryName]="Beverages" ซึ่งมีรายละเอียดย่อยของเงื่อนไขในรูปแบบนี้
    • หากใช้หลายตัวกรอง จะสามารถอ้างอิงคอลัมน์ที่มาจากตารางเดียวกันได้เท่านั้น
    • ไม่สามารถใช้ measure ในการอ้างอิงได้
    • ไม่สามารถใช้ผลลัพธ์ฟังก์ชัน CALCULATE ซ้อนเข้าไปได้
    • ไม่สามารถใช้ฟังก์ชันที่แสกนหรือส่งคืนตาราง รวมถึงฟังก์ชันการรวมได้
  • Table filter expression คือ ตัวกรองในรูปแบบตาราง เช่น ใช้ฟังก์ชัน Filter กรองตารางตามเงื่อนไขออกมา ตัวอย่าง Filter(ORDERS,[Total Sales]>5000)
  • Filter modification functions คือ ฟังก์ชันสำหรับปรับเปลี่ยนตัวกรอง เช่น REMOVEFILTER, ALL, ALLEXCEPT, ALLNONBLANKROW, KEEPFILTER, USERELATIONSHIP, CROSSFILTER


 

การคืนค่า

ค่าที่เป็นผลลัพธ์ของ expression

ข้อสังเกตที่ควรทราบ

  • เมื่อมีการระบุพารามิเตอร์ filter ในฟังก์ชัน CALCULATE ซึ่งจะทำให้เกิดให้การแก้ไขบริบทตัวกรองเพื่อประเมินผล expression ในฟังก์ชัน CALCULATE โดยจะมีผลลัพธ์เกิดจากผลของการระบุพารามิเตอร์ filter ใน 2 ทาง ดังนี้
    • ถ้าคอลัมน์ (หรือตาราง) ไม่อยู่ในบริบทตัวกรอง ตัวกรองใหม่ (พารามิเตอร์ filter) จะถูกเพิ่มลงในบริบทตัวกรองเพื่อประเมินพารามิเตอร์ expression ในฟังก์ชัน CALCULATE
    • ถ้าคอลัมน์ (หรือตาราง) อยู่ในบริบทตัวกรองอยู่แล้ว ตัวกรองที่มีอยู่จะถูกเขียนทับโดยตัวกรองใหม่ (พารามิเตอร์ filter) เพื่อประเมินพารามิเตอร์ expression ในฟังก์ชัน CALCULATE
  • ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสำหรับใช้ในโหมด DirectQuery เมื่อใช้ในการ calculated column หรือกฎ row-level security (RLS)


 

ตัวอย่างการใช้งาน

ตัวอย่างการใช้ฟังก์ชัน CALCULATE ในการคำนวณหายอดขายของทีมขาย 1 กับยอดขายของทีมขาย 2
จากข้อมูลตาราง Sales ที่มีรายละเอียดการขายสินค้าและมียอดขายสินค้าอยู่ที่คอลัมน์ Sales amount และ มีรายละเอียดว่ารายการขายแต่ละการขายเป็นของพนักงานใดอยู่ที่คอลัมน์ EmployeeCode

ตารางข้อมูล Sales ที่มีคอลัมน์ยอดขาย Sales amount และมีคอลัมน์รหัสพนักงานขาย EmployeeCode

โดยสร้าง measure หายอดขายรวม Total Sales จะได้

Total Sales = SUM(Sales[Sales amount])

ที่ข้อมูลตาราง Employee จะมีรายละเอียดพนักงาน โดยในส่วนพนักงานขายจะแบ่งเป็น Sales Team 1 กับ Sales Team 2 อยู่ที่คอลัมน์ Department

ตารางข้อมูล Employee ที่มีคอลัมน์ Department ที่แบ่งว่าพนักงานขายทีม 1 หรือพนักงานขายทีม 2

ตาราง Sales และตาราง Employee มีการทำ Relationship ระหว่างกันด้วยคอลัมน์ EmployeeCode ของแต่ละตาราง

แสดงการทำ Relationship ระหว่างตาราง Sales กับ ตาราง Employee

ฉะนั้นสามารถที่จะหายอดขายของทีมขาย 1 Sales of team 1 กับ ยอดขายของทีมขาย 2 Sales of team 2 ด้วยการสร้าง measure โดยใช้ฟังก์ชัน CALCULATE ในการกรองเพื่อให้ได้ยอดขายของทีมขาย 1 กับ ยอดขายของทีมขาย 2 ดังนี้

Sales of team 1 = CALCULATE([Total sales],Employee[Department]="Sales Team 1") //ยอดขายของทีมขาย 1

Sales of team 2 = CALCULATE([Total sales],Employee[Department]="Sales Team 2") //ยอดขายของทีมขาย 2

ตัวอย่างการใช้งาน CALCULATE ใน Visualization

ในตัวอย่างนี้นำ measure Sales of team 1 กับ Sales of team 2 มาแสดงเป็น Visualization

  • แบบ Card ชื่อ Title ว่า Total Sales Team 1 กับ Total Sales Team 2 เพื่อแสดงยอดขายรวมของทีมขาย 1 กับ ยอดขายรวมทีมขาย 2 มียอดขายเป็นจำนวนเงินเท่าไร
  • แบบ Stacked bar chart ที่แสดงยอดขาย Sales of team 1 กับ Sales of team 2 โดย CategoryName ซึ่งแสดงการเปรียบเทียบยอดขายระหว่างทีมขาย 1 กับ ทีมขาย 2 ในแต่ละกลุ่มสินค้า และทำให้เห็นยอดขายรวมทั้งหมดของแต่ละกลุ่มสินค้าว่ากลุ่มสินค้าใดขายได้มากสุดหรือน้อยสุด
  • แบบ 100% Stacked bar chart ที่แสดงสัดส่วนยอดขาย Sales of team 1 กับ Sales of team 2 ต่อยอดขายรวมตาม CategoryName จะทำให้เห็นว่ายอดขายของทีมขาย 1 กับ ทีมขาย 2 มีสัดส่วนเป็นกี่ % ของยอดขายรวมทั้งหมดตามกลุ่มสินค้า


 

ซึ่งนี้คือตัวอย่างส่วนหนึ่งการนำฟังก์ชัน CALCULATE เพื่อช่วยในการสร้าง measure ในเงื่อนไขที่ต้องการได้ และนำมาแสดงผล Visualization เพื่อให้เห็นภาพมากขึ้น

ตัวอย่างการใช้งาน DAX Function CALCULATE ใน Microsoft Power BI

Download

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



รับข่าวสารจาก 9Expert Trainingการดาวน์โหลดไฟล์นั้น แสดงว่าคุณได้ยอมรับ Privacy Policy ของเราแล้ว


 

ข้อมูลอ้างอิงจากเว็บไซต์


 

บทความเกี่ยวกับ 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 บทเรียน)


 

Download File : 9EXPERT-DAX-CALCULATE.pbix