Lab Power BI – Module 6 Create DAX Calculations in Power BI Desktop – Part 2

Tối ưu hóa hiệu suất, còn được gọi là điều chỉnh hiệu suất, liên quan đến việc thực hiện các thay đổi đối với trạng thái hiện tại của mô hình dữ liệu để mô hình này chạy hiệu quả hơn. Về cơ bản, khi mô hình dữ liệu của bạn được tối ưu hóa, nó sẽ hoạt động tốt hơn.

Bạn có thể thấy rằng báo cáo của mình chạy tốt trong môi trường thử nghiệm và phát triển, nhưng khi được triển khai vào thực tế để sử dụng rộng rãi hơn, các vấn đề về hiệu suất sẽ phát sinh. Từ góc độ người dùng báo cáo, hiệu suất kém do các trang báo cáo mất nhiều thời gian hơn để tải và hình ảnh mất nhiều thời gian hơn để cập nhật. Hiệu suất kém này dẫn đến trải nghiệm người dùng tiêu cực.

Mô hình dữ liệu có kích thước nhỏ hơn sử dụng ít tài nguyên hơn (ít bộ nhớ hơn) và đạt được tốc độ làm mới dữ liệu, tính toán và hiển thị hình ảnh trong báo cáo nhanh hơn. Do đó, quy trình tối ưu hóa hiệu suất liên quan đến việc giảm thiểu kích thước của mô hình dữ liệu và sử dụng hiệu quả nhất dữ liệu trong mô hình, bao gồm:

  • Đảm bảo rằng các loại dữ liệu chính xác được sử dụng.
  • Xóa các cột và hàng không cần thiết.
  • Tránh các giá trị lặp đi lặp lại.
  • Thay thế các cột số bằng các biện pháp.
  • Giảm cardality.
  • Phân tích siêu dữ liệu mô hình.
  • Tóm tắt dữ liệu nếu có thể.

Create DAX Calculations-part2

Module 6 ctl.edu.vn hướng dẫn bạn cách sử dụng biểu thức DAX (Data Analysis Expressions) liên quan đến bộ lọc.

Exercise 1: Làm việc với Filter Context

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 lab5-ex2.pbix (file này bạn đã thực hiện trong lab 5), ấn Open
Task 2: Tạo matrix visual

Task 2: Tạo matrix visual

  1. Tại Power BI Desktop, chọn Report view icon ở cạch trái màn hình.
  2. Để 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 3
  3. Tại page 3, Cửa sổ Visualizations bên phải, chọn matrix visual.
  4. Cửa sổ Data bên phải, mở rộng table Khu Vực, kéo field Vùng Bán hàng hierarchy vào matrix visual
  5. Cửa sổ Data bên phải, mở rộng table Hóa Đơn Bán Hàng, kéo field Thành Tiền vào matrix visual
  6. Để mở rộng toàn bộ hệ thống phân cấp, ở trên cùng bên phải của matrix visual, click vào biểu tượng mũi tên chia đôi hai lần.
  7. Chọn matrix visual, Cửa sổ Visualizations bên phải, chọn Icon Format for Visual.
  8. Mở rộng phần Row headers, tiếp tục mở rộng Option, trong phần Stepped Layout chọn Off
  9. Quan sát giao diện matrix visual, các khu vực bán hàng được tổ chức thành Nhóm Quốc Gia, Quốc Gia Bán Hàng, và Khu Vực Bán Hàng. Tất cả các Quốc Gia chỉ có một Khu Vực Bán Hàng được đặt theo tên quốc gia (ngoại trừ United States). Vì United States là một lãnh thổ bán hàng rộng lớn nên nó được chia thành 5 khu vực bán hàng.

filte-context

Task 3: Filter context

Task 3: Filter context

Task này bạn tạo vài measures sử dụng DAX dùng hàm CALCULATE() để filter context.

  1. Tại Power BI Desktop, chọn Report icon ở cạch trái màn hình, chọn Page 3
  2. Cửa sổ Data, phải chuột vào Hóa Đơn Bán Hàng table, chọn New measual
  3. Trên thanh formula bar: nhập vào:
Tổng Doanh Số = CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực’)))

(Hàm CALCULATE() thực hiện biểu thức hay measure, dựa vào bộ lọc, Hàm REMOVEFILTERS () loại bỏ các bộ lọc đang hoạt động.

Công thức trên tạo measure tính tổng cột Thành Tiền tất cả các khu vực bán hàng, và sẽ loại bỏ bất kỳ bộ lọc nào đã áp dụng cho các cột của table Khu Vực trước đó. )

4. Thêm Tổng Doanh Số measure vào matrix visual.

(Quan sát matrix visual, measure Tổng Doanh Số là tổng doanh số của tất cả các Khu Vực, kết quả này bằng với giá trị Total của cột thành tiền, giá trị này chưa mang lại kết quả hữu ích)

filte-context

5. Cửa sổ Data, chọn Tổng Doanh Số measure, trên thanh formula bar thay bằng công thức sau:

Tỷ lệ doanh Số = DIVIDE(Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực’)))

(Measure được đổi tên để phản ánh chính xác công thức được cập nhật, hàm này tính tỷ lệ % doanh số bán hàng theo từng khu vực = tổng doanh thu theo từng khu vựa chia cho tổng doanh thu của tất cả khu vực)

6. Cửa sổ Data, chọn tỷ lệ doanh Số measure, trên thanh công cụ, Chọn Icon percentage (%), trong phần Decimal Places chọn 2, ấn Enter

7. Quan sát tỷ lệ doanh Số trong matrix visual

filte-context

8. Tiếp tục, tại cửa sổ Data, phải chuột vào table Hóa Đơn Bán hàng, chọn New measual

9. Trên thanh formula bar: nhập vào:

Tỷ lệ Theo Quốc Gia = DIVIDE(
Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực'[Khu Vực bán hàng])))

(Lưu ý rằng công thức tính Tỷ lệ Theo Quốc Gia có khác so với công thức tính Tể lệ Doanh số theo từng khu vực, Sự khác biệt là mẫu số thay bộ lọc bằng cách loại bỏ các bộ lọc theo cột Khu vực bán hàng của table Khu Vực, không phải tất cả các cột của table Khu Vực. Điều đó có nghĩa là mọi bộ lọc được áp dụng cho Nhóm Quốc Gia hoặc Quốc Gia báng hàng đều được giữ nguyên. hàm sẽ trả về tỷ lệ doanh số bán hàng theo quốc gia.)

10. Cửa sổ Data, chọn Tỷ lệ Theo Quốc Gia measure, trên thanh công cụ, Chọn Icon percentage (%), trong phần Decimal Places chọn 2, ấn Enter

11. Thêm Tỷ lệ Theo Quốc Gia measure vào matrix visual.

12. Quan sát matrix visual, thấy chỉ có các Khu vực của Hoa Kỳ mới có giá trị không phải là 100%. Vì chỉ có Hoa Kỳ mới có nhiều khu vực. Tất cả các quốc gia khác chỉ có một khu vực duy nhất nên tất cả đều là 100%.

filte-context

13. Để cải thiện khả năng trực quan của measure này, hãy thay Tỷ lệ Theo Quốc Gia measure bằng công thức sau:

Tỷ lệ Theo Quốc Gia = If(ISINSCOPE(‘Khu Vực'[Khu Vực bán hàng]),
DIVIDE(
Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực'[Khu Vực bán hàng]))))

(hàm ISINSCOPE () được sử dụng để kiểm tra xem cột Khu Vực Bán Hàng có phải là một cấp trong hệ thống phân cấp hay không. Nếu đúng thì trả về giá trị của hàm DIVIDE(), ngược lại trả về khoảng trắng)

14. Quan sát lại Tỷ lệ Theo Quốc Gia trong matrix visual

filte-context

15. Tiếp tục, tại cửa sổ Data, phải chuột vào table Hóa Đon Bán Hàng, chọn New measual

16. Trên thanh formula bar: nhập vào:

Tỷ lệ Theo nhóm quốc gia = DIVIDE(
Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực'[Khu Vực bán hàng],’Khu Vực'[Quốc Gia Bán hàng])))
17. Cửa sổ Data, chọn Tỷ lệ Theo nhóm quốc gia measure, trên thanh công cụ, Chọn Icon percentage (%), trong phần Decimal Places chọn 2, ấn Enter

18. Thêm Tỷ lệ Theo nhóm quốc gia measure vào matrix visual.

19. Để cải thiện khả năng trực quan của measure này, hãy thay Tỷ lệ Theo nhóm quốc gia measure bằng công thức sau:

Tỷ lệ Theo nhóm quốc gia = IF(
    ISINSCOPE(‘Khu Vực'[Khu Vực bán hàng]) &&
      ISINSCOPE(‘Khu Vực'[Quốc Gia Bán hàng]),
 DIVIDE(
Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
CALCULATE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]),
REMOVEFILTERS(‘Khu Vực'[Khu Vực bán hàng],’Khu Vực'[Quốc Gia Bán hàng]))))

20. Quan sát lại Tỷ lệ Theo nhóm quốc gia trong matrix visual

filte-context

21. Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình

22. 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 tỷ lệ doanh Số, giữ phím Ctrl và chọn column Tỷ lệ Theo Quốc Gia, và Tỷ lệ Theo Nhóm Quốc Gia

23. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Display Folder nhập vào Tỷ Lệ, ấn Enter

24. Vào menu File chọn Save as và lưu file lab6-ex1.pbix

filte-context

Exercise 2: Làm Việc Với Time Intelligence

Exercise 2, bạn sẽ tạo Doanh Số year-to-date (YTD) measure (doanh số bán hàng tính từ đầu năm đến nay (YTD)) và Doanh Số year-over-year (YoY) measure (tăng trưởng doanh số hàng năm (YoY)).

Task 1: Tạo YTD measure

Task 1: Tạo YTD measure

  1. Tại Power BI Desktop, chọn Report View icon ở cạch trái màn hình, và chọn Page 2
  2. Tại page 2, quan sát matrix visual có measure năm và tháng đã được nhóm.
  3. Tại cửa sổ Data, phải chuột vào Hóa Đơn Bán Hàng table, chọn New measual
  4. Trên thanh formula bar: nhập vào:
Doanh Số YTD = TOTALYTD(
    Sum(‘Hóa Đơn Bán hàng'[Thành Tiền]),
    ‘Date'[Date], “6-30”)
(Hàm TOTALYTD () trong trường hợp này là tính tổng column Thành Tiền dự vào Column Date. Column Date phải thuộc về Date table đã được đánh dấu là Date table bạn đã thực hiện ở bài lab trước.

Hàm này có thể nhận thêm đối số tùy chọn thứ ba đại diện cho ngày cuối cùng của năm. Trong bài Lab này năm tài chính kết thúc vào ngày 30 tháng 6, nên đối số thứ 3 trong công thức này là “6-30”, nếu bỏ qua đối số thứ 3 thì ngày cuối năm là ngày 31 tháng 12),

5. Cửa sổ Data, chọn Doanh Số YTD measure, trên thanh công cụ, trong phần Decimal Places chọn 0, ấn Enter

6. Thêm Doanh Số YTD measure vào matrix visual quan sát tổng giá trị bán hàng trong năm

time-intelligence

Task 2: Tạo measure tăng trưởng theo năm YoY

Task 2: Tạo measure tăng trưởng theo năm YoY  

Task này, bạn sẽ tạo measure tăng trưởng doanh số theo năm.

  1. Tại cửa sổ Data, phải chuột vào table Hóa Đơn Bán Hàng, chọn New measual
  2. Trên thanh formula bar: nhập vào:
Doanh Số Tăng Trưởng YoY =
Var DoanhsoNamTruoc = CALCULATE(SUM(
    ‘Hóa Đơn Bán hàng'[Thành Tiền]),
    PARALLELPERIOD(‘Date'[Date],-12,MONTH))
    Return
    DoanhsoNamTruoc

(Công thức trên khai báo một biến đo lường tăng trưởng Doanh số bán hàng YoY . Biến để đơn giản hóa công thức và hiệu quả hơn khi một biểu thức cần được đánh giá nhiều lần trong công thức (sẽ là trường hợp của tăng trưởng YoY). Biến được khai báo bằng một tên duy nhất và biểu thức sau đó trả kết quả về biến qua từ khóa RETURN.)

3. Thêm Doanh Số Tăng Trưởng YoY measure vào matrix visual quan sát measual trả lại kết quả BLANK trong 12 tháng đầu tiên (vì không có doanh số bán hàng nào được ghi nhận trước năm tài chính 2017).

4. Để hiển thị phần trăm tăng trưởng hãy thay Doanh Số Tăng Trưởng YoY measure bằng công thức sau:

Doanh Số Tăng Trưởng YoY =
Var DoanhsoNamTruoc = CALCULATE(SUM(
    ‘Hóa Đơn Bán hàng'[Thành Tiền]),
    PARALLELPERIOD(‘Date'[Date],-12,MONTH))
    Return
    DIVIDE(SUM(‘Hóa Đơn Bán hàng'[Thành Tiền]) – DoanhsoNamTruoc,
    DoanhsoNamTruoc)

5. Cửa sổ Data, chọn Doanh Số Tăng Trưởng YoY  measure, trên thanh công cụ, Chọn Icon percentage (%), trong phần Decimal Places chọn 2, ấn Enter

6. Quan sát lại Doanh Số Tăng Trưởng YoY  trong matrix visual, tăng trưởng YoY cho tháng 7 năm 2018 là 392,83%. có nghĩa là doanh số tháng 7 năm 2018 ($2,411,559) tăng trưởng gần 400% (gần 4 lần) so với doanh số đạt được cùng thời điểm của năm trước ($489,328).

time-intelligence

7. Tại Power BI Desktop, chọn Model View icon ở cạch trái màn hình

8. 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 Doanh Số Tăng Trưởng YoY, giữ phím Ctrl và chọn column Doanh Số YTD.

9. Cửa sổ Properties (kê bên cửa sổ Data), trong phần Display Folder nhập vào Tăng Trưởng, ấn Enter

10. Vào menu File chọn Save as và lưu file lab6-ex2.pbix

time-intelligence

11. Để chuẩn bị cho lab 7 tạo Report, phải chuột vào page 3, chọn Delete Page, và ấn Delete. tiếp tục xóa page 2.

12. Tại Power BI Desktop, chọn Report icon ở cạch trái màn hình, Tại page 1 xóa Visual trên trang Report.

13. Vào menu File chọn Save as và lưu file lab6-final.pbix file này sẽ dùng là data cho lab tiếp theo

Hoàn Tất Bài Lab

Mr – CTL

Lab Power BI Module 7