Lab Power BI Module 5 – Create DAX Calculations in Power BI Desktop – Part 1

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.

Create DAX Calculations part 1

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

Task 1: Get started

  1. 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

Task 2: Tạo table Nhân Viên Bán Hàng

  1. 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
  2. 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

calculated-table

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

calculated-table

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.)

calculated-table

Task 3: Tạo Date table

Task 3: Tạo Date table

  1. 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
  2. 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)

Create Calculated Tables

Task 4: Tạo Calculated columns

Task 4: Tạo Calculated columns

  1. 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.
  2. Vào menu Table Tools chọn New Column
  3. 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.
  4. Tiếp tục tại menu Table Tools chọn New Column
  5. Trên thanh formula bar: nhập vào:
Quarter = ‘Date'[Year] & “-Q-” & If(MONTH(‘Date'[Date])<=3,3, if(MONTH(‘Date'[Date])<=6,4,If(MONTH(‘Date'[Date])<=9,1,2)))

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”)

calculated-table

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

calculated-table

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.)

calculated-table

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ự.

calculated-table

Task 5: Cấu hình Date table

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.

  1. Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình.
  2. 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
  3. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Is Hidden chọn Yes.
  4. 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
  5. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Name nhập vào Fiscal (Ngân Sách)
  6. Tại cửa sổ Properties trong phần Hierarchy dropdown list chọn Quarter
  7. Tiếp tục tại Hierarchy dropdown list, chọn Month
  8. Click Apply Level Changes

Complete the Date table

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.

calculated-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

calculated-table

Task 6: Mark the Date table

Task 6: Mark the Date table

  1. Tại Power BI Desktop, chọn Report View icon ở cạch trái màn hình.
  2. Cửa sổ Data bên phải, chọn Date table ( không phải Date field)
  3. Vào menu Table Tools, chọn Mark as Date Table, và chọn Mark as Date Table.
  4. Cửa sổ Mark as Date Table, trong phần Date Column dropdown list chọn Date., ấn Ok
  5. 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)

calculated-table

Exercise 2: Tạo Measures

Task 1: Tạo measures đơn giản

Task 1: Tạo measures đơn giản

  1. 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).

create-measures

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)

create-measures

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)

create-measures

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

create-measures

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á Thấp Nhất = Min(‘Hóa Đơn Bán hàng'[Giá Bán])

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

create-measures

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.

create-measures

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ả

create-measures

Task 2: Tạo thêm các measures

Task 2: Tạo thêm các measures

  1. 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.
  2. 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.
  3. 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

Create additional measures

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:

Doanh Số Mục Tiêu = IF(
    HASONEVALUE(‘nhân viên bán hàng (Khu Vực)'[Tên Nhân Viên Bán Hàng]),
SUM(‘Targets'[Số tiền mục tiêu]))

(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ị.

create-measures

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:

Chênh Lệch = IF(
    HASONEVALUE(‘nhân viên bán hàng (Khu Vực)'[Tên Nhân Viên Bán Hàng]),
    Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]) – ‘Targets'[Doanh Số Mục Tiêu])

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

create-measures

Hoàn tất bài lab

Mr – CTL

Lab Power BI Module 6