Tag: DAX

  • DAX (Data Analysis Expression) ฉบับเริ่มใช้งาน

    DAX (Data Analysis Expression) ใช้เพื่อการคำนวณใน Data Model 

    โดย DAX ประกอบด้วย Functions Operation และConstants เพื่อคำนวณและ/หรือแปลงข้อมูลเพื่อสร้าง Measure, Column, Table  

    ใช้งานได้ในผลิตภัณฑ์ของ Microsoft ดังนี้ Power BI, Excel (Power Pivot), SQL Server

     โดยมีสูตรต่าง ๆ มากมาย มีประโยชน์มากในการทำงานเกี่ยวกับ Time Intelligence การสร้าง Date Dimension การคำนวณโดยใช้ Relationships เพื่อเตรียมการคำนวณให้ไปใช้ในการสร้าง Visualization ต่อไป

    Column หรือ Measure สร้างอะไรดี

    • New Column จะมีการสร้างขึ้นมาจริงใน Data Model โดยการคำนวณขึ้นตอน Refresh Data ซึ่งต้องใช้พื้นที่จัดเก็บจริง  ใน Chart ต่างๆใน Report สามารถใช้ในฐานะ Category ได้
    • New Measure จะถูกคำนวณใน Report และค่าจะเปลี่ยนไปจามการ Filter ที่เปลี่ยนไป เมื่อ Filter เปลี่ยนจะมีการคำนวณใหม่ตลอด

    Functions ที่น่าสนใจสำหรับใช้งาน

    1. Format Number ถ้าต้องการใส่ Format ให้กับตัวเลข เช่น $ ใส่ “,” จุดทศนิยมต้องทำอย่างไร 

    ต้องทำเป็น Measure ดังนี้
    1.1 Click ขวาที่ Table Model และ New measure

    1.2 ส่วนหมายเลข 1 แก้ไขชือ Measure
    ส่วนหมายเลข 2 Function ที่ต้องการใช้ในที่นี้ใช้ Function Count
    ส่วนหมายเลข 3 เลือกรูปแบบการจัด Formate ของตัวเลขตามที่ต้องการ

    1. RELATED วิธีการดึงข้อมูลจากตารางอื่นๆมาเป็น Column ในตารางที่กำลังทำงานอยู่ โดยการสร้างNew Column แล้วใช้ Function  RELATED ดึงข้อมูลจากอีกตารางที่ต้องสร้าง Relationship ไว้แล้วและต้องเป็น Relation ที่ active แบบ One:one หรือ One:Many แต่ความสัมพันธ์แบบ Many:Many จะไม่สามารถทำได้

    2.1 สร้าง Column ใหม่

    2.2 ใส่ชื่อ Column Name และ Function RELATE(TABLE_NAME[COLUMN NAME]) แล้ว Enter หรือ Click เครื่องหมายถูกด้านหน้า ชื่อ column  ในตารางที่เราต้องการก็จะมี Column เพิ่มขึ้นมาอีก 1 Column ตามที่ต้องการ

    3. การใช้ IF ใน DAX
    IF(<logical_test>, <value_if_true>[, <value_if_false>])

    ตัวอย่าง
    สัญชาติ = IF(student[Nationality]==”T”,”ไทย”,”ต่างชาติ”)

    1. การใช้ Switch ใน DAX
      SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])  
    สถานะไม่ปกติ = SWITCH(student[STATUS_DESC],
    “ลาออก”,”ลาออก”,
    “ลาออก (พ้นสภาพฯ)”,
    “ลาออก”,”ลาออก(พ้นสภาพฯ)”,
    “ลาออก”,”ไม่มาลงทะเบียน”,
    “ไม่มาลงทะเบียน”,”ไม่มาลงทะเบียน (พ้นสภาพฯ)”,
    “ไม่มาลงทะเบียน”,”ไม่มาลงทะเบียน(พ้นสภาพฯ)”,
    “ไม่มาลงทะเบียน”,””)

    สังเกตุง่ายๆ เป็นการจับคู่ตัวเลขคี่เป็นค่าที่ต้องการแปลงค่า และตัวเลขคู่ที่คู่กันเป็นค่าที่ต้องการจะแปลงให้เป็น  และตัวสุดท้ายจะเป็นค่าที่ไม่ตรงกับค่าใดๆที่ได้ตรวจสอบไว้ข้างต้น

    Operations 

    ประกอบด้วย arithmetic, comparison, text concatenation, and logical

    Operator typeSymbol and use
    Parenthesis operator+ (addition)
    – (subtraction/
    sign)
    * (multiplication)
    / (division)
    ^ (exponentiation)
    Comparison operators= (equal to)
    > (greater than)
    < (less than)
    >= (greater than or equal to)
    <= (less than or equal to)
    <> (not equal to)
    Text concatenation operator& (concatenation)
    Logic operators&& (and)
    || (or)

    DAX Programming

    การเขียน Code แบบพื้นฐานดังนี้

    • ตัวแปร  VAR <name> = <expression>  

    เป็นการกำหนดตัวแปรที่จะใช้งาน

    VAR Number of students = DISTINCTCOUNT(students[student_id])  
    • Return

    ส่งค่าออกมาเมื่อมีการคำนวณในการค่า Measure

    total Student and Faculty =
    VAR Number of students = DISTINCTCOUNT(students[student_id])  
    VAR Number of faculty = DISTINCTCOUNT(students[fac_id])  
    VAR total = “มีนักศึกษาทั้งหมด” & Number of students & “คน ใน ” & Number of faculty & “ คณะ”

    RETURN    
    total 

    อ้างอิง

    https://docs.microsoft.com/en-us/dax/