quan hệ nhiều-nhiều trong PBI

Power BI Lab 4: Tạo quan hệ many to many – Model Data in Power BI Desktop (Part 2)

Ngày đăng: 14/03/2022
Trong bài thực hành này, chúng ta sẽ tạo quan hệ nhiều-nhiều (quan hệ many to many) giữa hai bảng Salesperson và bảng Sales. Mục tiêu của bài lab này là bạn có thể làm việc được dễ dàng với quan hệ nhiều-nhiều trong dữ liệu của bạn.Thời gian ước tính để hoàn thành bài lab này là 45 phút.

Lab story

Đây là bài thực hành nằm trong chuỗi bài luyện tập Power BI của Microsoft. Xuyên suốt chuỗi bài này, chúng ta sẽ đi từ khâu đầu tiên trong quá trình phân tích dữ liệu bằng Power BI – chuẩn bị dữ liệu, cho đến những bước cuối cùng – xuất bản báo cáo dưới dạng report hoặc dashboard. Mục tiêu cuối cùng của series này là xây dựng một giải pháp Power BI cho công ty Adventure Works – công ty sản xuất và kinh doanh đồ thể thao mạo hiểm đa quốc gia.Xem học liệu gốc của Microsoft tại đây: https://microsoftlearning.github.io/DA-100-Analyzing-Data-with-Power-BI/ Bạn có thể thực hiện từng bài thực hành theo thứ tự bất kỳ mà bạn mong muốn, tuy nhiên, để thuận lợi nhất cho quá trình luyện tập, chúng mình đề xuất thứ tự luyện tập như sau:
  1. Prepare Data in Power BI Desktop
  2. Load Data in Power BI Desktop
  3. Model Data in Power BI Desktop, Part 1
  4. Model Data in Power BI Desktop, Part 2
  5. Create DAX Calculations in Power BI Desktop, Part 1
  6. Create DAX Calculations in Power BI Desktop, Part 2
  7. Design a Report in Power BI Desktop, Part 1
  8. Design a Report in Power BI Desktop, Part 2
  9. Create a Power BI Dashboard
  10. Create a Power BI Paginated Report
  11. Perform Data Analysis in Power BI Desktop
  12. Enforce Row-Level Security

Hướng dẫn thực hành Data Modelling – Tạo quan hệ many to many trong Power BI

Task 1: Chuẩn bị

Để chuẩn bị cho bước tạo quan hệ nhiều-nhiều trong Power BI, bạn có thể mở file Power BI đã tạo từ buổi trước (xem lại hướng dẫn của buổi lab 3 – Data Model: https://datapot.vn/power-bi-moc-lab-3-model-data-in-power-bi-desktop/)

Task 2: Tạo quan hệ many to many(nhiều-nhiều)

  • Trong Report view, trong ngăn Fields chọn hai trường dưới đây để tạo biểu đồ dạng bảng:
    • Salesperson | Salesperson
    • Sales | Sales
Picture 1Nhận xét:Bảng của bạn đang thể hiện doanh thu của từng salesperson (người bán hàng). Tuy nhiên, trong quan hệ many-to-many còn có một quan hệ khác giữa salesperson và sales. Một số người bán thuộc về một, nhiều, hoặc rất nhiều sales region (khu vực bán hàng). Thêm vào đó, một sales region cũng có thể có nhiều người bán. Quan hệ giữa hai bảng này thể hiện là quan hệ nhiều-nhiều.Từ góc độ quản lý bán hàng, doanh số của một người bán (bằng tổng doanh số của những khu vực bán hàng của người đó) cần phải được phân tích và so sánh với target. 
  • Quay lại Model view và tạo các mối quan hệ như sau:
    • Salesperson | EmployeeKey  SalespersonRegion | EmployeeKey
    • Region | SalesTerritoryKey  SalespersonRegion | SalesTerritoryKey
    • Khi đó, bảng SalespersonRegion có thể coi là bảng nối.
  • Quay lại Report và chú ý rằng biểu đồ dạng bảng không hề có sự thay đổi nào.
  • Quay lại Model view, và theo dõi chiều lọc của của các mũi tên quan hệ nối từ bảng Salesperson.Bạn sẽ thấy bảng Salesperson lọc bảng Sales. Nó cũng đồng thời lọc bảng SalespersonRegion, nhưng không lọc được đến bảng Region (bởi vì chiều của mũi tên bị ngược)Picture 380
  • Click chuột phải vào quan hệ giữa hai bảng Region và SalespersonRegion.
  • Trong cửa sổ Edit Relationship trong danh sách thả xuống Cross filter direction chọn Both.
  • Chọn OK.
Picture 381
  • Quan hệ này sẽ được thể hiện dưới một đường nối với mũi tên 2 chiều 
Picture 382
  • Chuyển sang Report view, và bạn vẫn chưa thấy có gì thay đổi trong giá trị Sales.
Vấn đề ở đây là đang có hai hướng lọc có thể thực thi để đi từ bảng Salesperson đến bảng Sales.
  • Chuyển sang Model view.
  • Để thực thi được việc filter thông qua bảng cầu nối, click đúp chuột vào quan hệ giữa hai bảng SalespersonSales để chỉnh sửa.
  • Trong cửa sổ Edit Relationship, bỏ tick chọn hộp Make This Relationship Active.
Picture 383Sau đó, bạn sẽ chỉ có một hướng để lọc duy nhất. Quan hệ inactive sẽ được thể hiện bởi đường nối nét đứt. Picture 5697Chuyển sang Report view  bạn sẽ thấy Sales trong bảng đã được thay đổi tương ứng theo từng Salesperson. Picture 5698

Task 3: Nối với bảng Targets

In this task you will create a relationship to the Targets tableTạo ra thêm một quan hệ giữa hai cột Salesperson (Performance) | EmployeeIDTargets | EmployeeID.Trong Report view, thêm trường Targets | Target vào biểu đồ dạng bảng. Picture 5699Bây giờ biểu đồ sẽ thể hiện doanh số thực tế và kế hoạch cho từng người bán hàng. Tuy nhiên, hãy chú ý hai điểm như sau:
  • Đầu tiên, trong biểu đồ chưa có các bộ lọc theo thời gian, do đó target sẽ bao gồm cả các giá trị cho tương lai, nên target sẽ lớn hơn rất nhiều so với thực tế.
  • Thứ hai, target không phải là một phép tính toán có tính additive – có thể cộng được, vì vậy không nên thể hiện total (tổng) ở trong biểu đồ này. Chúng ta sẽ xử lý vấn đề này trong bài lab sau – chúng ta sẽ tạo ra phép tính trả về giá trị BLANK nếu một người bán bị tính trùng lặp.

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 *