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

สิ่งสำคัญของการใช้งาน Power BI ที่ขาดไม่ได้และเป็นเรื่องสำคัญมาก ๆ อย่างหนึ่งนั้นคือ DAX (Data Analysis Expressions) ซึ่งจะมาช่วยคำนวณสรุปผลข้อมูลที่มี โดย DAX จะถูกไปใช้ในการคำนวณ 3 ส่วนหลัก ๆ ได้แก่
- Measures – สร้างการคำนวณในรูปแบบของ Aggregation หลาย ๆ แถวในตาราง
- Calculated columns – สร้างการคำนวณให้เกิดคอลัมน์ใหม่ เป็นการคำนวณแบบทีละแถว
- Calculated table – สร้างการคำนวณให้เกิดตารางใหม่
DAX Function CALCULATE
ประเมินค่าจาก expression หรือสูตร ภายใต้ชุดของ filter ที่กำหนด
รูปแบบของ Syntax
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
พารามิเตอร์
พารามิเตอร์ | รายละเอียด |
expression | เป็นชื่อ measure ที่มีสร้างไว้อยู่แล้ว หรือสูตรที่เหมาะสม สำหรับการประเมิน |
filter1, filter2 | Boolean 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

โดยสร้าง measure หายอดขายรวม Total Sales จะได้
Total Sales = SUM(Sales[Sales amount])
ที่ข้อมูลตาราง Employee จะมีรายละเอียดพนักงาน โดยในส่วนพนักงานขายจะแบ่งเป็น Sales Team 1 กับ Sales Team 2 อยู่ที่คอลัมน์ Department

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

ฉะนั้นสามารถที่จะหายอดขายของทีมขาย 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 เพื่อให้เห็นภาพมากขึ้น

Download
DAX Function CALCULATE
รับข่าวสารจาก 9Expert Trainingการดาวน์โหลดไฟล์นั้น แสดงว่าคุณได้ยอมรับ Privacy Policy ของเราแล้ว
ข้อมูลอ้างอิงจากเว็บไซต์
บทความเกี่ยวกับ DAX ที่น่าสนใจ
- Data Analysis Expression (DAX) คืออะไร
- DAX Measures และ Calculated Column
- การสร้าง DAX Measures ใน Power BI
- DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
แนะนำหลักสูตรการอบรม
เรียนรู้คำสั่ง DAX เพื่อใช้งานด้าน Data Analysis, Data Analytic, BI โดยใช้ Power BIในหลักสูตร Data Analysis Expression (DAX) for Power BI (2 Days)
- Power BI Desktop for Business Analytics (2 Days)
- Power BI Advanced Visualization and AI (2 Days)
- Power BI Advanced Power Query (2 Days)
- Data Model for Power BI (2 Days)
Download File : 9EXPERT-DAX-CALCULATE.pbix