วิธีสร้าง DAX measures

ฟังก์ชัน DAX ใน Power BI

Carl Rosseel

Curriculum Manager

Implicit vs explicit measures

Implicit

  • สร้างขึ้นโดยอัตโนมัติโดย Power BI
  • ดึงมาจากฐานข้อมูลโดยตรง
  • เช่น: เมื่อลาก Sales ไปยังค่าของตาราง Power BI จะรวมค่าให้อัตโนมัติ
  • ใช้เมนู dropdown เพื่อกำหนดการรวมค่า: sum, average, count, ...

Explicit

  • เขียน measures อย่างชัดเจน
  • เช่น: Total Sales = SUM(Orders[Sales])
  • มีความยืดหยุ่นสูง
ฟังก์ชัน DAX ใน Power BI

เหตุใดจึงนิยมใช้ explicit measures

  • ลดความสับสนเกี่ยวกับ measure
    • Total Sales = SUM(Orders[Sales])
    • Total Sales ชัดเจนกว่า Sales (SUM, AVG, MIN, ... ?)
  • นำกลับมาใช้ใน measures อื่นได้
    • Total Sales East = CALCULATE([Total Sales],Orders[Region] = 'East')
  • ตั้งชื่อเองได้เพื่ออธิบายการทำงาน
  • ช่วยให้ดูแลรักษาโมเดลที่ซับซ้อนได้ง่ายขึ้น
ฟังก์ชัน DAX ใน Power BI

แนวทางปฏิบัติที่ดี

  • จัดกลุ่ม DAX measures ไว้ด้วยกัน:
    • Measures สามารถย้ายไปยังตารางใดก็ได้
    • ต่างจาก calculated columns ที่ผูกกับตารางเฉพาะ

Screenshot 2021-07-22 at 11.22.15.png

  • จัดรูปแบบและเพิ่มคอมเมนต์ด้วย DAX:
    • ใช้การย่อหน้าเพื่อเพิ่มความเข้าใจ
      • Shift Enter เพื่อขึ้นบรรทัดใหม่
      • Tab เพื่อย่อหน้า
    • เพิ่มคอมเมนต์หลัง //
ฟังก์ชัน DAX ใน Power BI

ใช้ตัวแปรเพื่อปรับปรุงสูตร

  • เก็บผลลัพธ์ของนิพจน์ไว้เป็นตัวแปรที่มีชื่อ
  • นำไปใช้เป็นอาร์กิวเมนต์ใน measure expressions อื่นได้

  • ข้อดีหลัก 4 ประการ:

    • ปรับปรุงประสิทธิภาพ
    • เพิ่มความอ่านง่าย
    • ทำให้การดีบักง่ายขึ้น
    • ลดความซับซ้อน

Syntax:

  • VAR <name> = <expression>
    • Name = ชื่อของตัวแปร
    • นิพจน์ DAX ที่คืนค่า scalar หรือ table
    • ตามด้วยคำสั่ง RETURN
ฟังก์ชัน DAX ใน Power BI

ใช้ตัวแปรเพื่อปรับปรุงสูตร - ตัวอย่าง

  • คำนวณยอดขายปีที่แล้วและเก็บเป็นตัวแปร
VAR 
SALESPRIORYEAR = CALCULATE([SALES],SAMEPERIODLASTYEAR('DATE'))
RETURN
  • นำตัวแปรไปใช้ในสูตร
Sales growth = [Sales] - SALESPRIORYEAR
ฟังก์ชัน DAX ใน Power BI

ใช้ตัวแปรเพื่อปรับปรุงสูตร - ตัวอย่าง

  • เมื่อรวมทั้งหมดแล้วจะได้ดังนี้:
Sales growth = 

VAR 
SALESPRIORYEAR = CALCULATE([SALES],SAMEPERIODLASTYEAR('DATE'))
RETURN

Sales growth = [Sales] - SALESPRIORYEAR
ฟังก์ชัน DAX ใน Power BI

มาฝึกกันเถอะ!

ฟังก์ชัน DAX ใน Power BI

Preparing Video For Download...