ข้ามไปยังเนื้อหา
DAX Function CALCULATE พร้อมตัวอย่างการใช้งาน

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

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

แนะนำ DAX CALCULATE ฟังก์ชันคำนวณสำคัญใน Power BI Excel SSAS พร้อมตัวอย่างและไฟล์ดาวน์โหลด | 9Expert Training

9Expert Team 2 นาที

สิ่งสำคัญของการใช้งาน 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, 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

ตารางข้อมูล 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-DAX-CALCULATE.pbix

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

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

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