Data Analysis Expression (DAX) คืออะไร

DAX (Data Analysis Expressions) เป็นภาษาคำสั่งที่ใช้ในการคำนวณและวิเคราะห์ข้อมูลใน Power BI และ Excel Power Pivot โดย DAX มีการใช้ฟังก์ชันที่สามารถสร้างสูตรการคำนวณแบบที่ยืดหยุ่นและมีประสิทธิภาพสูง
DAX คืออะไร Data Analysis Expression
ทักษะ (ระบุได้หลายทักษะ)

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 มีความคล้ายคลึงกับภาษา Excel Formula โดย DAX เหมาะสำหรับการวิเคราะห์ข้อมูลในธุรกิจ เพื่อนำข้อมูลใน Data Model มาทำงานคำนวณที่ต้องการ เช่นการคำนวณ YTD, QTD, MTD การเปรียบเทียบ %Change การดูสัดส่วนในมิติต่าง ๆ 
 

DAX มีสูตรคำนวณในด้านต่าง ๆ

  1. Time Intelligence Functions: ช่วยในการคำนวณข้อมูลเชิงเวลา เช่น YEAR, QUARTER, MONTH, DAY, HOUR, MINUTE, SECOND, DATEADD, DATEDIFF, SAMEPERIODLASTYEAR, เป็นต้น
  2. Statistical Functions: ช่วยในการคำนวณข้อมูลทางสถิติ เช่น AVERAGE, SUM, MAX, MIN, COUNT, MEDIAN, VAR, STDEV, เป็นต้น
  3. Filter Functions: ช่วยในการกรองข้อมูลและคำนวณข้อมูลที่เป็นไปได้ของตัวแปร โดยใช้ฟังก์ชันเช่น FILTER, ALL, CALCULATETABLE, เป็นต้น
  4. Text Functions: ช่วยในการจัดการข้อมูลแบบตัวอักษร เช่น CONCATENATE, LEFT, RIGHT, SUBSTITUTE, REPLACE, UPPER, LOWER, เป็นต้น
  5. Logical Functions: ช่วยในการสร้างเงื่อนไขหรือตรวจสอบความจริงของข้อมูล เช่น IF, AND, OR, SWITCH, TRUE, FALSE, เป็นต้น
  6. Information Functions: ช่วยในการตรวจสอบข้อมูล เช่น ISBLANK, ISNUMBER, ISTEXT, เป็นต้น

DAX Syntax

ในการระบุชื่อ Table และตามด้วยชื่อ Column ตามตัวอย่าง 'Orders'[Sales] เรียกว่าเป็นการระบุชื่อแบบ Fully Qualified Column Name ปกติถ้าเป็นการอ้างอิงถึง Column ใน Table เดียวกันสามารถระบุเพียงชื่อ Column อย่างเดียวได้เลย

Total Sales = SUM([Sales])

หากชื่อ Table มีช่องว่าง หรือเป็น Reserved Keywords  นั้น การระบุชื่อ Table จะต้องอยู่ภายใน ' ' (Single Quotation Marks) เช่น

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 โดยจะมีฟังก์ชันที่มีปรโยชน์ดังนี้

สามารถศึกษาเพิ่มเติมเกี่ยวกับสูตร DAX ได้ที่ บทความ DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน

Infographic ของ DAX

Infographic DAX คืออะไร Data Analysis Expression

DAX Language

เป็นภาษาที่ใช้สำหรับ DAX เราสามารถนำไปใช้กับเทคโนโลยีต่าง ๆ ได้ ดังนี้
  1. Power BI โดย Power BI Desktop เป็นโปรแกรมที่ใช้ในการสรุปผล เชิง Self-Service Business Intelligence ซึ่งเราสามารถใช้ DAX ในการช่วยประมวลผลในส่วนของการทำ Data Model เพื่อสร้าง Calculated Column, Measure, Table ได้
  2. Power Pivot โดย Power Pivot เป็นเครื่องมือที่มีทั้งใน Microsoft Excel เพื่อใช้ในการทำ Data Model สร้าง Relationship กำหนด Data Hierarchy ของข้อมูลได้ เพื่อจัดกลุ่ม ซึ่งสามารถใช้ DAX เพื่อคำนวณ ประมวลผลข้อมูลได้
  3. SSAS Tabular SSAS หรือ SQL Server Analysis Service เป็นบริการหนึ่งใน Microsoft SQL Server เพื่อใช้ในวิเคราะห์ข้อมูล โดยหากใช้ SSAS Tabular ก็จะสามารถใช้งาน DAX ได้เช่นกัน 


 

การคำนวณด้วย DAX

การคำนวณด้วย DAX จะมีหลายฟังก์ชันที่คล้ายกับ ฟังก์ชัน ของ Microsoft Excel และมีหลายฟังก์ชัน ที่เป็นการคำนวณในรูปแบบเฉพาะ ที่จะช่วยให้การคำนวณที่ซับซ้อนทำออกมาได้อย่างง่ายๆ ตัวอย่างที่ฟังก์ชันที่ไม่มีใน Excel ได้แก่ CALCULATE, SUMX, AVERAGEX, RANKX, DISTINCT, FILTER, ALLRELATED, RELATEDTABLE, CALENDAR, IF เป็นต้น

การสร้าง Measure เพื่อคำนวณยอดสะสมด้วย Time Intelligence ด้วยฟังก์ชัน CALCULATE

จากในภาพ เป็นการหาค่า 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


 

Time Intelligence

ใน DAX นั้นมี Function ที่จะช่วยให้เราทำงานกับวันที่ได้อย่างที่เราต้องการ เพื่อใช้ในการ คำนวณ เช่นการคำนวณยอดสะสมในแต่ละปี ในแต่ละไตรมาส และในแต่ละเดือน (ใช้ฟังก์ชัน YTD, QTD, MTD) หรือเป็นเรื่องการเปรียบเทียบ เช่น การเทียบยอดขายในช่วงเดียวกันของปีก่อนหน้านี้ (ใช้ฟังก์ชัน SAMEPERIODLASTYEAR) ซึ่งในส่วนนี้จะต้องใช้ Date Table ซึ่งสามารถสร้างได้จาก DAX เช่นกัน โดยดูรายละเอียดเพิ่มเติมได้ที่ รู้จักกับ Date Dimension พร้อมวิธีการสร้างตาราง Date Table ด้วย DAX โดยมี VDO แนะนำด้วย

ตัวอย่างของการคำนวณ ด้าน Time Intelligence ด้วย Data Analysis Expression (DAX)

ดูข้อมูลเพิ่มเติมของ 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

9EXPERT TRAINING  มีหลักสูตรการอบรมเกี่ยวกับ  Power BI ดังนี้ :
  1. Power BI Desktop for Business Analytics (2 Days)
  2. Power BI Advanced Visualization and AI (2 Days)
  3. Power BI Advanced Power Query (2 Days)
  4. Data Analysis Expression (DAX) for Power BI (2 Days) *
  5. Data Model for Power BI (2 Days)

หรือรูปแบบ Online ที่
 
Microsoft Power BI for Business Analytics (64 บทเรียน)