Data Analysis Expressions (DAX) là ngôn ngữ lập trình được sử dụng trong Microsoft Power BI để tạo các calculated columns, measures, và custom tables. Nó là một tập hợp các hàm, toán tử và hằng số có thể được sử dụng trong một công thức hoặc biểu thức để tính toán và trả về một hoặc nhiều giá trị.
Bạn có thể sử dụng DAX để giải quyết một số vấn đề về tính toán và phân tích dữ liệu, điều này có thể giúp bạn tạo thông tin mới từ dữ liệu đã có trong mô hình của mình.
Trong Power BI, bạn có thể sử dụng các kỹ thuật và chức năng tính toán khác nhau để tạo measures hay calculated columns. Về cơ bản, bạn sẽ có thể đạt được kết quả bằng cách sử dụng các kỹ thuật này. Tuy nhiên, điều quan trọng là phải biết cách thức và thời điểm áp dụng chúng. Bằng cách hiểu cơ bản về thời điểm và cách sử dụng kỹ thuật nào, bạn sẽ có thể tạo các mô hình dữ liệu mạnh mẽ và hiệu suất cao.
Module 5 ctl.edu.vn hướng dẫn bạn cách tạo calculated tables, calculated columns, và measures đơn giản bằng cách dùng Data Analysis Expressions (DAX).
Exercise 1: Tạo Calculated Tables
Exercise 1 bạn sẽ tạo hai calculated tables, trước tiên bạn sẽ tạo table Nhân Viên Bán hàng, cho phép tạo relationship trực tiếp với table Hóa Đơn Bán Hàng. Sau đó bạn sẽ tạo Date table
Task 1: Get started
- Tại Power BI Desktop, vào menu File, chọn Open Report,ấn Browse Report, chọn file lab4-ex4.pbix (file này bạn đã thực hiện trong lab 4), ấn Open
Task 2: Tạo table Nhân Viên Bán Hàng
- Tại Power BI Desktop, chọn Report icon ở cạch trái màn hình, vào menu Modeling, trên thanh công cụ chọn New Table
- Tại thanh formula bar: nhập vào Nhân Viên Bán Hàng = ‘nhân viên bán hàng (Khu Vực)’ ấn Enter
(Lệnh này tạo một bản sao của table nhân viên bán hàng (Khu Vực). Nó chỉ sao chép dữ liệu, không sao chép thuộc tính và định dạng.)
3. Cửa sổ Data bên phải, quan sát Icon của table Nhân Viên Bán Hàng vừa tạo
4. Tại Power BI Desktop, chọn Model icon ở cạch trái màn hình, từ table Nhân Viên Bán Hàng kéo Mã Nhân Viên column đến Mã Nhân Viên column của table Hóa Đơn Bán Hàng. (tạo relationship từ Nhân Viên Bán Hàng với table Hóa Đơn Bán Hàng)
5. Phải chuột vào relationship của Nhân Viên Bán Hàng (Khu Vực) và tables Hóa Đơn Bán Hàng, Chọn Delete, ấn Yes
6. Cửa sổ Data bên phải, Click vào mũi tên phía trước table Nhân Viên Bán Hàng, chọn TargetID field, giữ Ctrl chọn Mã Nhân Viên và UPN field
7. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Is Hidden chọn Yes
8. Cửa sổ Data bên phải, chọn table Nhân Viên Bán Hàng, cửa sổ Properties (kế bên cửa sổ Data), trong phần Description nhập vào Nhân viên bán hàng liên quan đến Hóa Đơn
9. Tương tự cửa sổ Data bên phải, chọn Nhân Viên Bán Hàng (Khu Vực) table, cửa sổ Properties (kế bên cửa sổ Data), trong phần Description nhập vào Nhân viên bán hàng liên quan đến Khu vực bán Hàng
(Mô hình dữ liệu hiện có hai lựa chọn khi phân tích nhân viên bán hàng. Table Nhân Viên Bán Hàng cho phép phân tích doanh số bán hàng do nhân viên thực hiện, trong khi Nhân Viên Bán Hàng (Khu Vực) cho phép phân tích doanh số bán hàng theo khu vực bán hàng được chỉ định cho nhân viên.)
Task 3: Tạo Date table
- Tại Power BI Desktop, chọn Data icon ở cạch trái màn hình, vào menu Home, trên thanh công cụ chọn New Table
- Trên thanh formula bar: nhập vào Date = CALENDARAUTO(6) ấn Enter
(Hàm CALENDARAUTO () trả về một table có một cột chứa các giá trị ngày tháng năm. Hàm “tự động” quét tất cả các column ngày trong mô hình dữ liệu để xác định giá trị từ ngày đầu tiên đến ngày cuối cùng được lưu trữ trong mô hình dữ liệu. Sau đó, nó tạo một hàng cho mỗi ngày trong phạm vi này.
Hàm này có thể nhận một đối số là số tháng cuối cùng của năm. Khi không nhập đối số mặc định sẽ là 12, có nghĩa là tháng 12 là tháng cuối cùng của năm. Trong trường hợp này, 6 là đối số được nhập, có nghĩa là tháng 6 là tháng cuối cùng của năm. (được tính theo năm tài chính (Fiscal Years) của công ty)
Task 4: Tạo Calculated columns
- Tại Power BI Desktop, chọn Table View icon ở cạch trái màn hình, Cửa sổ Data bên phải chọn Date table vừa tạo.
- Vào menu Table Tools chọn New Column
- Trên thanh formula bar: nhập vào Year = “Năm TC-” & year(‘Date'[Date]) + If(MONTH(‘Date'[Date])>6,1,0) ấn Enter.
- Tiếp tục tại menu Table Tools chọn New Column
- Trên thanh formula bar: nhập vào:
6. Tiếp tục tại menu Table Tools chọn New Column
7. Trên thanh formula bar: nhập vào: Month = FORMAT(‘Date'[Date],”yyyy MMM”)
8. Tại Power BI Desktop, chọn Report icon ở cạch trái màn hình.
9. Để tạo report page mới, hãy chọn vào biểu tượng dấu cộng ở dưới cùng bên trái sẽ tạo page 2
10. Tại page 2, Cửa sổ Visualizations bên phải, chọn matrix visual.
11. Cửa sổ Data bên phải, mở rộng Date table, kéo field Year vào phần Row,
12. Tiếp tục kéo field Month vào phần Row (ở bên dưới Year)
13. Tại matrix visual chọn biểu tượng mũi tên chia đôi sẽ mở rộng tất cả các năm xuống một cấp, quan sát thấy tháng chưa được sắp xếp
14. Tại Power BI Desktop, chọn Table View icon ở cạch trái màn hình.
15. Vào menu Table Tools chọn New Column
16. Trên thanh formula bar: nhập vào:
MonthKey = (YEAR(‘Date'[Date]) * 100) + MONTH(‘Date'[Date])
17. Quan sát giá trị của Column MonthKey (ví dụ 201707 đại diện cho tháng 7 năm 2017, v.v.)
18. Tại Power BI Desktop, chọn Report icon ở cạnh trái màn hình.
19. Cửa sổ Data bên phải, Click vào mũi tên phía trước Date table, chọn Month field.
20. Vào menu Column Tools chọn Sort by Column, và chọn MonthKey.
21. Quan sát trong matrix visual, các Month đã sắp xếp theo thứ tự.
Task 5: Cấu hình Date table
Task này bạn sẽ hoàn thành việc thiết kế Date table bằng cách ẩn một cột và tạo một hệ thống phân cấp. Sau đó, bạn sẽ tạo mối quan hệ với Hóa Đơn Bán Hàng và Targets table.
- Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình.
- Cửa sổ Data bên phải, Click vào mũi tên phía trước Date table, chọn MonthKey column
- Cửa sổ Properties (kê bên cửa sổ Data), trong phần Is Hidden chọn Yes.
- Cửa sổ Data bên phải, Click vào mũi tên phía trước Date table, phải chuột vào Year column chọn Create Hierarchy
- Cửa sổ Properties (kê bên cửa sổ Data), trong phần Name nhập vào Fiscal (Ngân Sách)
- Tại cửa sổ Properties trong phần Hierarchy dropdown list chọn Quarter
- Tiếp tục tại Hierarchy dropdown list, chọn Month
- Click Apply Level Changes
9. Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình, từ Date table kéo Date column đến Ngày Hóa Đơn column của table Hóa Đơn Bán Hàng.
10. Tương tự, từ Date table kéo Date column đến Tháng column của Targets table.
11. Cửa sổ Data bên phải, Click vào mũi tên phía trước table Hóa Đơn Bán Hàng, chọn Ngày Hóa Đơn column, giữ Ctrl chọn Click vào mũi tên phía trước Targets table, chọn Tháng column,
12. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Is Hidden chọn Yes
Task 6: Mark the Date table
- Tại Power BI Desktop, chọn Report View icon ở cạch trái màn hình.
- Cửa sổ Data bên phải, chọn Date table ( không phải Date field)
- Vào menu Table Tools, chọn Mark as Date Table, và chọn Mark as Date Table.
- Cửa sổ Mark as Date Table, trong phần Date Column dropdown list chọn Date., ấn Ok
- Vào menu File chọn Save as và lưu file lab5-ex1.pbix
(Power BI Desktop bây giờ hiểu rằng table này xác định ngày (giờ). Rất quan trọng khi dựa vào các tính toán về thời gian. Phương pháp thiết kế Date table này phù hợp khi bạn không có Date table trong nguồn dữ liệu của mình)
Exercise 2: Tạo Measures
Task 1: Tạo measures đơn giản
- Tại Report view, trên Page 2, cửa sổ Data bên phải, mở rộng Hóa Đơn Bán Hàng table, kéo field Giá Bán vào matrix visual.
(Trong bài lab trước, bạn đặt Giá Bán column tính theo giá trị Trung bình. Kết quả bạn thấy trong matrix visual là đơn giá trung bình hàng tháng (tổng các giá trị Giá Bán chia cho số lượng Giá Bán).
2. Cửa sổ Visualizations quan sát trong phần Values đang có giá trị là Giá Bán.
3. Click vào mũi tên của Giá Bán, quan sát thấy đang chọn Average (có thể thay đổi)
4. Cửa sổ Data bên phải, phải chuột vào Hóa Đơn Bán Hàng table chọn New Measure
5. Trên thanh formula bar: nhập vào: Giá Bán Trung Bình = AVERAGE(‘Hóa Đơn Bán hàng'[Giá Bán])
6. Thêm Giá Bán Trung Bình measure vào matrix visual. (Quan sát Giá Bán Trung Bình có kết quả giống Giá Bán, có thể khác nhau về định dạng)
7. Cửa sổ Visualizations quan sát trong phần Values có thêm giá trị Giá Bán Trung Bình bên dưới Giá Bán.
8. Click vào mũi tên của Giá Bán Trung Bình, quan sát không thể thay đổi giống Giá Bán
9. Cửa sổ Data bên phải, phải chuột vào table Hóa Đơn Bán Hàng chọn New Measure
10. Trên thanh formula bar: nhập vào: Giá Trung Vị = MEDIAN(‘Hóa Đơn Bán hàng'[Giá Bán])
11. tiếp tục tạo các Measure sau:
Giá Cao Nhất = MAX(‘Hóa Đơn Bán hàng'[Giá Bán])
Số Đơn Hàng = DISTINCTCOUNT(‘Hóa Đơn Bán hàng'[Mã Hóa Đơn])
Tổng số Dòng = COUNTROWS(‘Hóa Đơn Bán hàng’)
12. Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình.
13. Cửa sổ Data bên phải, Click vào mũi tên phía trước table Hóa Đơn Bán Hàng, chọn column Giá Bán Trung Bình, giữ phím Ctrl và chọn column Giá Thấp Nhất, Giá Cao Nhất, và Giá Trung Vị.
14. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Display Folder nhập vào Giá, ấn Enter
15. Cũng tại cửa sổ Properties, mở rộng Formatting, trong phần Decimal Places chọn 2, ấn Enter
16. Quan sát Folder đã được tạo
17. Cửa sổ Data bên phải, Click vào mũi tên phía trước table Hóa Đơn Bán hàng , chọn column Giá Bán
18. Cửa sổ Properties (kê bên cửa sổ Data), trong phần is hidden chọn Yes
19. Cửa sổ Data bên phải, Click vào mũi tên phía trước Hóa Đơn Bán Hàng table, chọn column Số Đơn Hàng, giữ phím Ctrl và chọn column Tổng số Dòng.
20. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Display Folder nhập vào Đếm Đơn Hàng, ấn Enter
21. Cũng tại cửa sổ Properties, mở rộng Formatting, trong phần thousands separator chọn Yes, ấn Enter
22. Quan sát Folder đã được tạo.
23. Tại Power BI Desktop, chọn Report View icon ở cạch trái màn hình, chọn Page 2, chọn Matrix Visual
24. Cửa sổ Visualizations, trong phần Values xóa Giá Bán, vào kéo các fields Giá Trung Vị , Giá Thấp Nhất, Giá Cao Nhất, Số Đơn Hàng, Tổng số Dòng vào Values
25. Thay đổi kích thước của matrix visual để nhìn thấy đầy đủ kết quả
Task 2: Tạo thêm các measures
- Tại Power BI Desktop, chọn Report view icon ở cạch trái màn hình, chọn Page 1, quan sát dòng total của Doanh Số Mục Tiêu column trong table visual.
- Chọn table visual có chứa column Doanh Số Mục Tiêu, cửa sổ Visualizations, trong phần Values xóa Doanh Số Mục Tiêu field.
- Cửa sổ Data, mở rộng Targets table, Double Click vào field Doanh Số Mục Tiêu đổi tên thành Số tiền mục tiêu
4. Cửa sổ Data, phải chuột vào Targets table, chọn New measual
5. Trên thanh formula bar: nhập vào:
(Hàm HASONEVALUE() kiểm tra xem một giá trị trong column Tên Nhân Viên Bán Hàng có được lọc hay không. Nếu Có, hàm HASONEVALUE() trả về giá trị Đúng (true), biểu thức IF trả về tổng số tiền mục tiêu (chỉ cho nhân viên bán hàng đó). Nếu Không hàm HASONEVALUE() trả về giá trị sai (False), biểu thức IF trả về giá trị BLANK.)
6. Chọn Doanh Số Mục Tiêu measual vừa tạo, trên thanh công cụ, trong phần Decimal Places chọn 0, ấn Enter
7. Phải chuột vào Số tiền mục tiêu column, chọn Hide
8. Thêm Doanh Số Mục Tiêu measure vào table visual.
9. Quan sát Doanh Số Mục Tiêu column Total không có giá trị.
10. Cửa sổ Data, phải chuột vào Targets table, chọn New measual
11. Trên thanh formula bar: nhập vào:
12. Chọn Chênh Lệch measual vừa tạo, trên thanh công cụ, trong phần Decimal Places chọn 0, ấn Enter
13. Thêm Chênh Lệch measure vào table visual.
14. Cửa sổ Data, phải chuột vào Targets table, chọn New measual
15. Trên thanh formula bar: nhập vào:
Tỷ Lệ Chênh Lệch = DIVIDE([Chênh Lệch],[Doanh Số Mục Tiêu])
16. Chọn Tỷ Lệ Chênh Lệch measual vừa tạo, trên thanh công cụ, Chọn Icon percentage (%), trong phần Decimal Places chọn 2, ấn Enter
17. Thêm Tỷ Lệ Chênh Lệch measure vào table visual.
(Quan sát Table visual có vẻ như tất cả nhân viên bán hàng đều không đạt được mục tiêu, hãy nhớ rằng bạn chưa lọc theo một khoảng thời gian cụ thể. Bạn sẽ tạo báo cáo hiệu suất bán hàng lọc theo khoảng thời gian cụ thể trong bài lab tạo Report.)
18. Vào menu File chọn Save as và lưu file lab5-ex2.pbix
Hoàn tất bài lab
Mr – CTL