Data Analysis Expression (DAX) คืออะไร
DAX คืออะไร
DAX (Data Analysis Expressions) เป็นภาษาคำสั่งที่ใช้ในการคำนวณและวิเคราะห์ข้อมูลใน Power BI, Excel (Power Pivot), SQL Server ได้ โดย DAX มีการใช้ฟังก์ชันที่สามารถสร้างสูตรการคำนวณแบบที่ยืดหยุ่นและมีประสิทธิภาพสูงคือชุดของ Functions, Operations และ Constants เพื่อสร้างการคำนวณใน Data Model สร้าง Measure, Column, Table โดยมีสูตรต่าง ๆ มากมาย มีประโยชน์มากในการทำงานเกี่ยวกับ Time Intelligence การสร้าง Date Dimension การคำนวณโดยใช้ Relationships เพื่อเตรียมการคำนวณให้ไปใช้ในการสร้าง Visualization ต่อไป
DAX มีสูตรคำนวณในด้านต่าง ๆ
- Time Intelligence Functions: ช่วยในการคำนวณข้อมูลเชิงเวลา เช่น YEAR, QUARTER, MONTH, DAY, HOUR, MINUTE, SECOND, DATEADD, DATEDIFF, SAMEPERIODLASTYEAR, เป็นต้น
- Statistical Functions: ช่วยในการคำนวณข้อมูลทางสถิติ เช่น AVERAGE, SUM, MAX, MIN, COUNT, MEDIAN, VAR, STDEV, เป็นต้น
- Filter Functions: ช่วยในการกรองข้อมูลและคำนวณข้อมูลที่เป็นไปได้ของตัวแปร โดยใช้ฟังก์ชันเช่น FILTER, ALL, CALCULATETABLE, เป็นต้น
- Text Functions: ช่วยในการจัดการข้อมูลแบบตัวอักษร เช่น CONCATENATE, LEFT, RIGHT, SUBSTITUTE, REPLACE, UPPER, LOWER, เป็นต้น
- Logical Functions: ช่วยในการสร้างเงื่อนไขหรือตรวจสอบความจริงของข้อมูล เช่น IF, AND, OR, SWITCH, TRUE, FALSE, เป็นต้น
- Information Functions: ช่วยในการตรวจสอบข้อมูล เช่น ISBLANK, ISNUMBER, ISTEXT, เป็นต้น
DAX Syntax
ในการระบุชื่อ Table และตามด้วยชื่อ Column ตามตัวอย่าง 'Orders'[Sales] เรียกว่าเป็นการระบุชื่อแบบ Fully Qualified Column Name ปกติถ้าเป็นการอ้างอิงถึง Column ใน Table เดียวกันสามารถระบุเพียงชื่อ Column อย่างเดียวได้เลย
Total Sales = SUM([Sales])
Total Sales = SUM('Orders'[Sales])
รู้จักกับ Columns และ Measures
DAX ใช้สำหรับการสร้างการคำนวณ ซึ่งจะมีทั้ง Columns และ Measures
Columns
Columns เป็นการคำนวณที่เหมือน ๆ กับการสร้างคอลัมน์ใหม่ใน Microsoft Excel คือเป็นการคำนวณในแต่ละ Row ในลักษณะที่เรียกว่า row-by-row เช่น สร้าง Column Total Sale = [UnitPrice] * [Quantity] หรือ Customer by Country = COUNTROWS(RELATEDTABLE(Customers)) เพื่อคำนวณสรุปจำนวณลูกค้าโดยใช้ความสัมพันธ์ไปหาข้อมูลในอีกตาราง ซึ่งจะคล้ายสูตร SUMIF, SUMIFS ใน Excel เป็นต้น
โดยการคำนวณรูปแบบนี้จะใช้ Memory และ Disk เป็นหลัก
Measures
Measures ใช้สำหรับการสรุปผลข้อมูล ช่วยให้เราสามารถสร้างการคำนวณที่ซับซ้อน ทำงานกับ Data Model ใน Power BI เพื่อสร้างนำไปใช้ โดยมีฟังก์ชันในการคำนวณมากมาย หากใครเคยใช้ Calculated Field ใน PivotTable ก็คือ Measure นั่นเอง เช่น หากต้องการคำนวณว่ายอดขายเทียบกับปีที่ผ่านมาดีขึ้นหรือแย่ลงกี่เปอร์เซ็น (%) เป็นต้น และยังเป็นความสามารถของสูตร DAX ที่จะช่วยสร้างการคำนวณ การสรุปผลตามที่เราต้องการ เช่นการสรุปข้อมูลตามเวลาด้วย Time Intelligence เป็นต้น
ตัวอย่างของ DAX Syntax
Average Price = AVERAGE('Product'[Price])
Sales This Year = CALCULATE(SUM('Sales'[Amount]), YEAR('Sales'[Date]) = YEAR(TODAY()))
Total Revenue = SUMX('Department', 'Department'[Revenue])
Sales Percentage = DIVIDE(SUM('Sales'[Amount]), CALCULATE(SUM('Sales'[Amount]), ALL('Product')))
Sales Change = SUMX(FILTER('Sales', 'Sales'[Date] = TODAY()), 'Sales'[Amount]) - SUMX(FILTER('Sales', 'Sales'[Date] = SELECTEDVALUE('Date'[DateKey])), 'Sales'[Amount])
ตัวอย่างสูตรคำนวณใน DAX
DAX มีฟังก์ชันที่มีประโยชน์มากมายโดยหลาย ๆ ฟังก์ชันมีความคล้าย Excel โดยจะมีฟังก์ชันที่มีปรโยชน์ดังนี้
- SUMX, COUNTX, AVERAGEX, RANKX, CONCATENATEX
- CALENDAR, CALENDARAUTO
- CALCULATE
- ALL, FILTER
- RELATED, RELATEDTABLE
- COUNT, COUNTA, COUNTBLANK, COUNTDISTINCT
- SAMEPERIODLASTYEAR
- TOTAYTD, TOTALQTD, TOTALQTD
- DATEDIFF, DATEADD
สามารถศึกษาเพิ่มเติมเกี่ยวกับสูตร DAX ได้ที่ บทความ DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
Infographic ของ DAX
DAX Language
- Power BI โดย Power BI Desktop เป็นโปรแกรมที่ใช้ในการสรุปผล เชิง Self-Service Business Intelligence ซึ่งเราสามารถใช้ DAX ในการช่วยประมวลผลในส่วนของการทำ Data Model เพื่อสร้าง Calculated Column, Measure, Table ได้
- Power Pivot โดย Power Pivot เป็นเครื่องมือที่มีทั้งใน Microsoft Excel เพื่อใช้ในการทำ Data Model สร้าง Relationship กำหนด Data Hierarchy ของข้อมูลได้ เพื่อจัดกลุ่ม ซึ่งสามารถใช้ DAX เพื่อคำนวณ ประมวลผลข้อมูลได้
- SSAS Tabular SSAS หรือ SQL Server Analysis Service เป็นบริการหนึ่งใน Microsoft SQL Server เพื่อใช้ในวิเคราะห์ข้อมูล โดยหากใช้ SSAS Tabular ก็จะสามารถใช้งาน DAX ได้เช่นกัน
การคำนวณด้วย DAX
การคำนวณด้วย DAX จะมีหลายฟังก์ชันที่คล้ายกับ ฟังก์ชัน ของ Microsoft Excel และมีหลายฟังก์ชัน ที่เป็นการคำนวณในรูปแบบเฉพาะ ที่จะช่วยให้การคำนวณที่ซับซ้อนทำออกมาได้อย่างง่ายๆ ตัวอย่างที่ฟังก์ชันที่ไม่มีใน Excel ได้แก่ CALCULATE, SUMX, AVERAGEX, RANKX, DISTINCT, FILTER, ALL, RELATED, RELATEDTABLE, CALENDAR, IF เป็นต้น
จากในภาพ เป็นการหาค่า Measure ชื่อว่า Total MyCompany Units YTD เพื่อคำนวณ Total Units Year To Date โดยแสดงเป็นค่าสะสมเฉพาะยอดของบริษัทของเราด้วยสูตร Total MyCompany Units YTD = CALCULATE([Total Units YTD], FILTER(ALL(Products[isMyCompany]), Products[isMyCompany]="Yes"))
บทความตัวอย่างการใช้ DAX
- DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
- DAX Function – Related
- DAX Function SUMX พร้อมตัวอย่างการใช้งาน
- DAX Function RANKX พร้อมตัวอย่างการใช้งาน
Time Intelligence
ใน DAX นั้นมี Function ที่จะช่วยให้เราทำงานกับวันที่ได้อย่างที่เราต้องการ เพื่อใช้ในการ คำนวณ เช่นการคำนวณยอดสะสมในแต่ละปี ในแต่ละไตรมาส และในแต่ละเดือน (ใช้ฟังก์ชัน YTD, QTD, MTD) หรือเป็นเรื่องการเปรียบเทียบ เช่น การเทียบยอดขายในช่วงเดียวกันของปีก่อนหน้านี้ (ใช้ฟังก์ชัน SAMEPERIODLASTYEAR) ซึ่งในส่วนนี้จะต้องใช้ Date Table ซึ่งสามารถสร้างได้จาก DAX เช่นกัน โดยดูรายละเอียดเพิ่มเติมได้ที่ รู้จักกับ Date Dimension พร้อมวิธีการสร้างตาราง Date Table ด้วย DAX โดยมี VDO แนะนำด้วย
ดูข้อมูลเพิ่มเติมของ DAX ได้ที่
ดูข้อมูลเพิ่มเติมของ DAX ได้ที่ https://docs.microsoft.com/en-us/dax
บทสรุปของ DAX
DAX หรือ Data Analysis Expression มีทั้ง Function, Operation, Constant ที่ใช้ในการทำ Data Modeling เพื่อทำการคำนวณในงานหลายๆ อย่างที่เราไม่สามารถทำได้ด้วยการคำนวณปกติได้ ซึ่งเราสามารถนำไปใช้ในการสร้าง Calculated Column, Measure หรือ สร้าง Table เพื่อใช้ในการเตรียมการคำนวณเพื่อใช้ในการออกรายงาน (Report) ในอนาคตได้
สามารถศึกษาเพิ่มเติมเกี่ยวกับสูตร DAX ได้ที่ บทความ DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
หลักสูตรของ 9Expert Training
- Power BI Desktop for Business Analytics (2 Days)
- Power BI Advanced Visualization and AI (2 Days)
- Power BI Advanced Power Query (2 Days)
- Data Analysis Expression (DAX) for Power BI (2 Days) *
- Data Model for Power BI (2 Days)
หรือรูปแบบ Online ที่