Tomorrow Marketers – Nếu đang tìm hiểu về Power BI, chắc hẳn bạn đã nghe nhiều về bộ hàm DAX. Vậy DAX là gì? Tại sao lại nói “bạn sẽ bỏ lỡ 95% tiềm năng của Power BI nếu không sử dụng DAX”? Và làm thế nào để sử dụng “công cụ” này trong Power BI? Hãy cùng Tomorrow Marketers tìm hiểu trong bài viết dưới đây nhé!
Nội dung bài viết:
- DAX là gì? DAX có giống với hàm trong Excel
- Tại sao không nên bỏ qua DAX khi sử dụng Power BI
- Cú pháp của DAX (DAX Syntax)
- Một số tính năng (DAX functions) phổ biến trong Power BI
4.1. Aggregation functions
4.2. Counting functions
4.3. Logical functions
4.4. Information functions
4.5. Text functions
4.6. Date functions - Cách sử dụng hàm DAX trong Power BI
5.1. Calculated tables
5.2. Calculated columns
5.3. Measures
1. DAX là gì? DAX có giống với hàm trong Excel
Dax viết tắt của Data Analysis Expressions là một ngôn ngữ lập trình bao gồm các hàm, toán tử và hằng số, được tạo ra để tính toán các giá trị mới từ dữ liệu có sẵn, nhằm phục vụ cho việc phân tích và xây dựng Data Model trong PowerBI.
Bạn có thể tưởng tượng DAX tương tự như các hàm trong Excel.
Ví dụ: Bạn có dữ liệu bán hàng của một công ty bao gồm 5 trường thông tin: Ngày bán hàng, tên sản phẩm, số lượng, đơn giá, doanh thu.
Bạn có thể dễ dàng tạo ra các hàm như SUM để tính tổng doanh thu bán hàng, hay AVERAGE để tính doanh thu trung bình, hoặc sử dụng các hàm phức tạp hơn như VLOOKUP, DCOUNTA,… để tính toán các giá trị mới phục vụ cho việc phân tích.
Tương tự trong Power BI, bạn cũng có thể sử dụng các công thức để tính toán, tạo ra các trường dữ liệu mới từ những trường dữ liệu có sẵn.
Ví dụ sử dụng hàm DAX trong Power để tính toán
Tuy nhiên hàm DAX trong Power BI và các hàm trong Excel vẫn có nhiều điểm khác biệt mà bạn cần lưu ý:
Hàm Excel | Hàm DAX | |
Mục đích sử dụng | Sử dụng chủ yếu để thực hiện các phép tính toán cơ bản và tổng hợp dữ liệu trong bảng tính Excel. | Sử dụng để tính toán, tạo ra các bảng, cột, measure mới phục vụ cho việc phân tích dữ liệu và xây dựng các mô hình, báo cáo trong Power BI. |
Cách thức hoạt động | Các hàm trong Excel hoạt động theo từng ô (cell). Khi sử dụng các hàm, bạn sẽ cần chọn ô hoặc vùng để tham chiếu nhằm đảm bảo cho dữ liệu không bị sai sót trong quá trình tính toán. | Hàm DAX hoạt động dựa trên bảng (table) và cột (collumn). Khi sử dụng hàm DAX, bạn sẽ không cần tham chiếu từng ô riêng lẻ, mà Power BI sẽ tham chiếu toàn bộ các cột và bảng giúp thực hiện các phép tính dễ dàng hơn với những tệp dữ liệu lớn. |
Kết quả trả về | Với các hàm trong Excel, kết quả trả về sẽ được trình bày trong từng ô (cell) trong bảng tính. | Hàm DAX trong Power BI, có thể trả về kết quả dưới dạng cột (column) và bảng (table) hoặc các phép tính ảo (measure) không tốn dung lượng lưu trữ của file. |
2. Tại sao không nên bỏ qua DAX khi sử dụng Power BI
Với các tính năng sẵn có của Power BI, bạn hoàn toàn có thể thực hiện các phép tính đơn giản như tính tổng, tính trung bình và tạo ra các biểu đồ dashboard chứa những thông tin hữu ích giúp trả lời vấn đề của doanh nghiệp.
Ví dụ: Không cần dùng đến DAX, từ dữ liệu về doanh số bán được (Sales) của mỗi sản phẩm bạn có thể dễ dàng tạo ra một biểu đồ biểu diễn doanh thu của từng nhóm sản phẩm theo thời gian.
Tuy nhiên nếu muốn trả lời những câu hỏi sâu hơn, ví dụ những nhóm sản phẩm nào đang mang lại nhiều lợi nhuận nhất cho doanh nghiệp, chỉ sử dụng dữ liệu có sẵn là không đủ mà bạn sẽ cần sử dụng DAX để thực hiện nhiều công thức tính toán thêm nhằm mở rộng tệp dữ liệu có sẵn.
Ví dụ sử dụng DAX để tính Profit Margin của từng nhóm sản phẩm
Vậy làm sao để có thể sử dụng được “công cụ” tuyệt vời này, trước tiên hãy cùng TM tìm hiểu về cú pháp của hàm DAX nhé!
3. Cú pháp của DAX (DAX Syntax)
Hàm DAX được cấu tạo bởi 4 thành phần chính:
(1) Tên bảng/ cột/ measure. Ở đây tên measure là Total Cost.
(2) Toán tử gán (=) cho biết vị trí bắt đầu của hàm DAX
(3) Hàm (Function) trong DAX. Ở ví dụ này, hàm tính năng được sử dụng là SUM (), dùng để cộng tổng các số trong một cột
(4) Tên bảng và cột để tham chiếu tính toán, ở đây là cột Cost trong bảng Sales
Bạn có thể tìm hiểu thêm về cú pháp của hàm DAX trong tài liệu DAX syntax của Microsoft.
4. Một số tính năng (DAX functions) phổ biến trong Power BI
Microsoft cung cấp nhiều hàm DAX khác nhau trong Power BI để phục vụ cho việc tính toán, thao tác với những giá trị dạng text, làm việc với các giá trị thời gian,… Bạn có thể tìm hiểu chi tiết về từng functions cũng như cập nhật những functions mới nhất trong trong tài liệu DAX function reference.
Tuy nhiên dưới đây là 6 functions chính được sử dụng nhiều nhất:
4.1. Aggregation functions
Các hàm Aggregation cho phép thực hiện các phép tính toán (ví dụ tính tổng, trung bình, Min hoặc Max) cho tất cả các hàng trong một cột hoặc các giá trị trong bảng.
- AVERAGE: Trả về giá trị trung bình của tất cả các giá trị trong một cột
- MAX: Trả về giá trị lớn nhất trong một cột hoặc giữa hai giá trị là số thực
- MIN: Trả về giá trị bé nhất trong một cột hoặc giữa hai giá trị là số thực
- SUM: Trả về giá trị tổng của tất cả các giá trị trong một cột
- SUMX: Trả về giá trị tổng của các giá trị được xác định trong 1 biểu thức tính
Ví dụ:
= SUMX(FILTER(Sales, Sales[SalesTerritoryKey]=5),[Freight])
Thay vì trả về tổng của tất cả các giá trị trong cột Freight, hàm trên sẽ chỉ trả về giá trị tổng của các giá trị trong cột Freight mà có SalesTerritoryKey tương ứng (trong bảng Sales) là 5.
4.2. Counting functions
Counting functions trong Power BI được sử dụng để đếm số giá trị trong một cột hoặc bảng.
- COUNT: Đếm số ô có chứa số, ngày tháng hoặc chứa chuỗi. Hàm này thường được sử dụng để đếm số hàng trong một cột được chỉ định, mà cột đó phải không chứa giá trị trống.
- COUNTA: Đếm số ô không trống (không chứa giá trị blank) trong một cột
- COUNTBLANK: Đếm số ô trống (chứa giá trị blank) trong một cột
- DISTINCTCOUNT: Đếm số lượng các giá trị không trùng lặp trong một cột
- COUNTROWS: Đếm số hàng có được từ việc lọc bảng hoặc áp dụng ngữ cảnh cho bảng.
Ví dụ:
= COUNTROWS( FILTER(Sales, Sales[Quantity] <100) )
Hàm này sẽ đếm số dòng còn lại của bảng Sales sau đã khi lọc và loại bỏ hết tất cả những giá trị trong bảng có Quantity tương ứng nhỏ hơn 100.
4.3. Logical functions
Các hàm logic được sử dụng để kiểm tra các điều kiện và trả về kết quả TRUE, FALSE, hoặc một giá trị khác.
- AND: Để kiểm tra nhiều điều kiện một lúc, kết quả trả về sẽ là TRUE nếu tất cả điều kiện đều đúng hoặc FALSE nếu bất kỳ điều kiện nào sai.
- OR: Nếu một trong các điều kiện đúng, kết quả trả về sẽ là TRUE, còn nếu cả hai đều sai, kết quả trả về sẽ là FALSE
- NOT: Thay đổi FALSE thành TRUE hoặc TRUE thành FALSE
- IF: Kiểm tra một điều kiện và trả về một giá trị nếu điều kiện đúng, và một giá trị khác nếu điều kiện đó sai
- IFERROR: Trả về một giá trị đã được chỉ định trước nếu biểu thức bị lỗi, và trả về đúng giá trị nếu biểu thức đó đúng
4.4. Information functions
Các hàm Information trong DAX sẽ xem xét các ô hoặc hàng xem liệu có khớp với giá trị đã dự kiến trước hay không.
- ISBLANK: Kiểm tra có giá trị nào trống hay không, nếu trống thì trả về giá trị TRUE, còn không thì trả về giá trị FALSE
- ISNUMBER: Kiểm tra xem một giá trị có phải là số hay không, nếu là số thì trả về TRUE, còn không phải thì trả về giá trị FALSE
- ISTEXT: Kiểm tra xem một giá trị có phải là dạng chữ (văn bản) hay không, nếu là dạng văn bản thì trả về TRUE, nếu không phải thì trả về FALSE
- ISNONTEXT: Ngược lại với hàm ISTEXT ở trên, nếu là dạng văn bản thì trả về FALSE, nếu không phải thì trả về TRUE
- ISERROR: Kiểm tra xem có giá trị lỗi hay không, nếu có thì trả về TRUE, nếu không phải thì trả về FALSE
4.5. Text functions
Các hàm Text functions được sử dụng để xử lý các giá trị dạng chuỗi trong Power BI. Một số hàm thường được dùng:
- LEFT: Trả về các ký tự ngoài cùng bên trái của chuỗi
- RIGHT: Trả về các ký tự ngoài cùng bên phải của chuỗi
- LEN: Đếm số lượng ký tự có trong chuỗi
- CONCATENATE: Kết hợp 2 chuỗi ký tự với nhau tạo thành một chuỗi ký tự mới
- REPLACE: Thay thế một phần của chuỗi ký tự thành một chuỗi ký tự khác, dựa trên số ký tự đã chỉ định
4.6. Date functions
Các hàm Data được sử dụng trong Power BI để xử lý các dữ liệu ngày tháng. Một số hàm thường được dùng:
- CALENDAR: Trả về một bảng có một cột duy nhất chứa tập hợp các ngày liên tiếp nhau trong một khoảng thời gian xác định
- DATEDIFF: Trả về một khoảng thời gian (ngày, tháng hoặc năm) giữa 2 thời điểm cố định
- NOW: Trả về ngày và giờ hiện tại ở định dạng datetime.
- DATEVALUE: Thay đổi ngày tháng ở dạng văn bản thành ngày tháng ở định dạng datetime trong Power BI.
Ngoài các functions cơ bản trên, còn nhiều functions nâng cao như Filter functions, Time intelligence functions,… TM sẽ cùng bạn đi tìm hiểu trong những bài viết tiếp theo.
5. Cách sử dụng hàm DAX trong Power BI
Hàm DAX được sử dụng trong Power BI để tạo ra:
- Calculated tables
- Calculated columns
- Measures
5.1. Calculated tables
Thông thường, các bảng trong Power BI sẽ được tạo bằng cách import bảng từ nguồn bên ngoài. Với hàm DAX bạn có thể dễ dàng tạo ra một bảng dữ dữ liệu mới (calculated table) từ những dữ liệu sẵn có trong dataset mà không cần phải import dữ liệu mới.
Ví dụ kết hợp 2 bảng đã có với nhau để tạo ra một bảng mới
Bảng dữ liệu mới này sẽ được lưu trữ trong file Power BI và bạn hoàn toàn có thể thực hiện các thao tác giống như tất cả các bảng thông thường khác (đổi tên, thay đổi định dạng, tạo relationship, trực quan hóa,…).
Đọc thêm: Connect data source in PowerBI: Cách kết nối các nguồn dữ liệu khác nhau trong Power BI
Calculated tables phù hợp để sử dụng cho các phép tính trung gian và các dữ liệu mà bạn muốn lưu trữ lại thay vì tính toán nhanh chóng dưới dạng truy vấn.
Một số hàm phổ biến được sử dụng với calculated tables:
- DISTINCT
- VALUES
- CROSSJOIN
- UNION
- NATURALINNERJOIN
- NATURALLEFTOUTERJOIN
- INTERSECT
- CALENDAR
- CALENDARAUTO
Để tạo calculated table bạn có thể truy cập vào Table view > Table Tools, và làm theo hướng dẫn dưới đây:
Slide hướng dẫn cách tạo Calculated table – Khóa học Data Analysis
5.2. Calculated columns
Trong nhiều trường hợp, dataset bạn sử dụng không có sẵn trường dữ liệu mà bạn cần để trả lời cho bài toán của mình. Khi ấy bạn sẽ cần phải sử dụng DAX để tạo ra các cột mới (calculated columns) để tính toán các trường dữ liệu đó. Các phép tính sẽ được thực hiện cho mỗi hàng trong bảng và kết quả sẽ được lưu trữ trong file Power BI.
Ví dụ: Bạn đã có dữ liệu về ngày mua hàng (order_purchase_timestamp, và ngày ship hàng dự kiến (order_estimated_delivery_dat), bạn có thể tạo một cột mới để tính toán thời gian giao hàng dự kiến cho từng order như hướng dẫn dưới đây:
Slide hướng dẫn cách tạo Calculated Column để tính thời gian giao hàng dự kiến – Khóa Data Analysis
Vì dữ liệu được lưu trữ, nghĩa là càng có nhiều calculated columns thì kích thước của file sẽ càng lớn và tiêu tốn nhiều dung lượng bộ nhớ để lưu trữ hơn. Vì vậy, calculated columns sẽ thích hợp để sử dụng với một tệp dữ liệu không quá lớn, bạn muốn thêm các cột mới vào trong bảng và muốn lưu trữ kết quả cho tất cả các phép tính tiếp theo.
5.3. Measures
Giống như Calculated columns, việc tạo Measures với DAX cho phép bạn tính toán thêm các giá trị mới để mở rộng tệp dữ liệu ban đầu. Nếu bạn không muốn tính toán giá trị cho mỗi hàng trong bảng mà muốn tổng hợp các giá trị từ nhiều hàng khác nhau trong một bảng (Ví dụ: tính tổng doanh thu, tăng trưởng, trung bình…) thì sử dụng measure là một giải pháp.
Ngoài ra, các kết quả từ các phép tính trong measures sẽ không được lưu trữ trong file Power BI, mà sẽ được tính toán lại từ đầu mỗi khi bạn sử dụng measure đó trong một công thức tính toán khác hoặc khi trực quan hóa dữ liệu (khá tương đồng với các câu lệnh SQL). Nhờ đặc điểm này mà measures linh hoạt hơn nhiều so với Calculated columns, không tốn dung lượng bộ nhớ, có thể được sử dụng cho các tệp dữ liệu lớn, cập nhật liên tục, hoặc khi cần tính toán những phép tính phức tạp.
Có 2 loại Measures trong Power BI:
- Implicit measure (Automatic measures): Các measures được tạo sẵn tự động trong Power BI để hỗ trợ cho phần trực quan hóa.
Đọc thêm: Data Visualization – Cách chọn loại biểu đồ minh hoạ tốt nhất cho metrics của bạn
- Explicit measure: Các measures được tạo ra bởi các công thức Dax
Để tạo measures bạn có thể truy cập vào Report view, Table view và Model view và làm theo hướng dẫn trong hình dưới đây:
Tham khảo thêm các hàm DAX được sử dụng để tạo measures tại đây (DAX function reference).
Tạm kết
DAX là một “công cụ” tuyệt vời giúp mở rộng tệp dữ liệu có sẵn, nhờ vậy bạn có thể bạn khai thác dữ liệu một cách hiệu quả, tìm ra nhiều thông tin hữu ích hơn để trả lời các vấn đề của doanh nghiệp.
Nếu bạn muốn tìm hiểu sâu hơn về cách khai thác công cụ Power BI trong phân tích dữ liệu, cũng như cải thiện kỹ năng đọc số nhằm tìm ra insight đắt giá, hãy tham khảo khóa học Data Analysis của Tomorrow Marketers.
Khóa học sẽ giúp bạn:
- Hiểu tổng quan về công việc Data Analysis thông qua quy trình 6 bước làm việc với dữ liệu
- Rèn luyện tư duy xác định bài toán của doanh nghiệp thông qua công cụ issue tree, và các analytical framework
- Trang bị kỹ năng sử dụng Power BI để làm sạch, xây dựng data model và trực quan hóa dữ liệu
- Trau dồi khả năng đọc số và phân tích các loại dữ liệu khác nhau thông qua các case study về sales, khách hàng, digital,…
Tìm hiểu thêm về khóa Data Analysis – Phân tích dữ liệu cho quyết định chiến lược.