học power bi nâng cao

Học Power BI nâng cao: Xây dựng ma trận không đối xứng

Ngày đăng: 02/07/2022
Trong bài viết này, Datapot sẽ hướng dẫn bạn xây dựng ma trận không đối xứng (theo hàng và cột) trong khi bắt đầu học Power BI nâng cao.

Ma trận đối xứng và Ma trận không đối xứng – Học Power BI nâng cao

Matrix đối xứng

Matrix là một loại visual thường được sử dụng trong Power BI khi người dùng muốn thể hiện thông tin theo 2 chiều dữ liệu khác nhau. Thông thường matrix của chúng ta là dạng ma trận đối xứng, chúng ta sử dụng một dimension để cấu thành nên hàng và 1 dimension khác để cấu thành nên cột của matrix. Như ví dụ trong ảnh dưới đây là một ma trận đối xứng.xây dựng ma trận không đối xứng

Matrix không đối xứng

Tuy nhiên, thực tế chúng ta có thể gặp các yêu cầu xây dựng matrix không đối xứng, thường gặp trong các báo cáo tài chính, cân đối kế toán. Với dạng visual này, chúng ta không thể kéo 2 dimension cấu thành nên cột và hàng như thông thường. Hình ảnh dưới là minh họa cho 1 matrix không đối xứng ở cột.học power bi nâng caoMột cách đơn giản nhất để xử lý trong tình huống này, chúng ta tạo ra các measure tương ứng với từng cột trong ma trận đối xứng. Ví dụ như ở minh họa phía trên, chúng ta cần phải tạo ra 5 measure. Tuy nhiên nếu số lượng cột quá lớn thì việc tạo ra measure như vậy sẽ mất nhiều thời gian và cũng không phải cách hay. Một nhược điểm nữa là nó không thể xử lý được tình huống ma trận không đối xứng ở hàng.ma trận không đối xứngBài viết này giới thiệu đến các bạn cách để chúng ta xây dựng nên matrix không đối xứng.Download file Power BI Tại đây(Tham khảo Cách xây dựng Dynamic Measure trên Power BI Tại đây)(Tham khảo Cách xây dựng Cohort Analysis trên Power BI Tại đây)

Hướng dẫn học Power BI nâng cao – Xây dựng Ma trận không đối xứng

Giả sử chúng ta có một bảng dữ liệu có tên là “SalesTable” bao gồm 2 cột: ⦁ Customerkey: Cột chứa key định danh cho mỗi khách hàng mua dịch vụ. ⦁ OrderDate: Ngày có đặt hàng dịch vụ Mỗi dòng dữ liệu là 1 giao dịch bán hàng. Ngoài ra ta cũng có 1 bảng “Date”, có relationship với bảng “SalesTable” thông qua cột Date và OrderDate.Chúng ta cần tạo một matrix chứa số lượng order bán hàng ra theo từng tháng trong từng năm và cũng thể hiện sự tăng trưởng của năm 2022 so cới số lượng bán được trong ăm 2019.

Bước 1

Đầu tiên, chúng ta cần tạo ra 1 measure để đếm số lượng order từ dữ liệu trong bảng “SalesTable”:

No.Orders = COUNTROWS(SalesTable)

Quan sát matrix ở trên, với dòng, chúng ta có thể dễ dàng sử dụng cột “Month of year” trong bảng “Date”. Tuy nhiên với cột, chúng ta không thể kéo cột “Fiscal Year” vào. Thay vào đó, chúng ta cần tạo ra một disconnected table, đặt tên nó là “header_table”. Bảng này sẽ chứa các quan sát là header label của matrix mà chúng ta cần tạo. Lưu ý ở đây, 3 giá trị đầu tiên trong cột header_label của bảng chính là 3 năm trong bảng “Date”.xây dựng ma trận không đối xứng

header_table

Để cố định thứ tự xuất hiện trong matrix, chúng ta cần sắp xếp cột header_label theo cột id.học power bi nâng cao

Sắp xếp cột header_label theo cột id

Bước 2

Tiếp đến, chúng ta cần thiết lập relationship giữa bảng “Header_table” và bảng “Date” thông qua cột “header_label” trong bảng “Header_table” và cột “Fiscal Year” trong bảng Date. Tại sao lại là “Fical Year”? Đơn giản chúng ta muốn hiển thị matrix theo “Fiscal Year” nhưng thêm 1 số cột mới như change và %change.học power BI nâng cao

Bước 3

Measure by column header =
VAR DisplayItem = SELECTEDVALUE (header_table[id])VAR year_2019 = CALCULATE([No.Orders], all(header_table), header_table[header_label] = "FY2019")
VAR year_2020 = CALCULATE([No.Orders], all(header_table), header_table[header_label] = "FY2020")
VAR change_2020_vs_2019 = year_2020 - year_2019
VAR percent_change = DIVIDE(change_2020_vs_2019, year_2019, BLANK())*100
RETURN
SWITCH (
TRUE (),
DisplayItem <= 3, [No.Orders],
DisplayItem = 4, change_2020_vs_2019,
DisplayItem = 5, percent_change)
Bước tiếp theo, chúng ta tạo 1 measure, đặt tên là “Measure by column header” như sau:Trong measure này, chúng ta tạo ra 2 chỉ số change_2020_vs_2019 và percent_change để xác định số lượng order thay đổi giữa năm FY2020 so với FY2019 và tỉ lệ thay đổi là bao nhiêu. Việc tạo ra “DisplayItem” thông qua hàm “SELECTEDVALUE” và sử dụng nó trong hàm “SWITCH” chính là cách mà measure “Dynamic measure by column header” hoạt động.

Bước 4

Cuối cùng, chúng ta tạo matrix. Lựa chọn loại visual là matrix, tại tùy chọn Rows, sử dụng cột “Month of year” trong bảng “Date”. Tại tùy chọn Columns, thay vì sử dụng “Fiscal Year” trong bảng “Date”, ta sử dụng cột “header_label” trong bảng “header_table”. Ở tùy chọn Values, ta sử dụng “Measure by column header”. Kết quả là chúng ta có một ma trận không đối xứng theo cột (matrix with asymmetrical columns).Ở đây, tại mỗi cột, chúng ta DisplayItem trong measure sẽ được xác định. Ví dụ tại FY2018, DisplayItem = 1, với điều kiện DisplayItem <= 3 thì sử dụng [No.Orders]. Tương tự với cột FY2019 và FY2020. Trong khi đó với cột Change 2020 vs 2019, DisplayItem = 4, do đó measure sẽ áp dụng chỉ số change_2020_vs_2019. Với ma trận không đối xứng theo hàng (matrix with asymmetrical rows), chúng ta chỉ cần thay đổi tùy chọn columns, rows trong phần thiết lập visual:xây dựng ma trận không đối xứng

Ma trận không đối xứng theo cột

                  học power bi nâng cao

Thiết lập tùy chọn

Ở đây, tại mỗi cột, chúng ta DisplayItem trong measure sẽ được xác định. Ví dụ tại FY2018, DisplayItem = 1, với điều kiện DisplayItem <= 3 thì sử dụng [No.Orders]. Tương tự với cột FY2019 và FY2020. Trong khi đó với cột Change 2020 vs 2019, DisplayItem = 4, do đó measure sẽ áp dụng chỉ số change_2020_vs_2019. Với ma trận không đối xứng theo hàng (matrix with asymmetrical rows), chúng ta chỉ cần thay đổi tùy chọn columns, rows trong phần thiết lập visual:học power bi nâng cao

                                      Ma trận không đối xứng theo hàng

                 

                            Thiết lập tùy chọn

Tham khảo kết quả tại file Power BI dưới đây:

xây dựng ma trận không đối xứngNhư vậy chúng ta vừa tìm hiểu xong cách xây dựng matrix không đối xứng, thông qua ví dụ khá trực quan. Bạn đọc có thể áp dụng vào trong công việc của mình, thay vì chỉ sử dụng được matrix mặc định trong PBI, chúng ta đã có thể tự custom theo ý mình. Tham khảo: Tại đây

Tham gia group ôn thi DA-100 tại: https://www.facebook.com/groups/da100vn Chuỗi Video Hướng dẫn thực hành Lab và sử dụng các tài nguyên của Microsoft: https://www.youtube.com/c/Datapotvn/videos Update tài nguyên từ Microsoft, DA-100 exam questions và exam topics tại Fanpage của Datapot: https://www.facebook.com/DatapotAnalytics/

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *