Power BI Day 13: Tìm hiểu về chức năng Merge Queries trong Power Query Editor

Ngày đăng: 12/02/2022

Có hai loại tính năng kết hợp dữ liệu trong Power Query Editor đó là Merge và Append.

  • Với một hoặc nhiều cột mà chúng ta muốn thêm vào một bảng khác, chúng ta sẽ dùng Merge
    VD: Giả sử bảng A có 100 dòng, bảng B có 50 dòng trùng với “key” của bảng A. Khi combine bảng B vào bảng A thì chỉ có 50 dòng có đầy đủ dữ liệu, 50 dòng sẽ trống. Còn khi combine bảng A vào bảng B thì sẽ có 50 dòng dữ liệu đầy đủ!
  • Với một hoặc nhiều dòng mà chúng ta muốn thêm vào một bảng khác, chúng ta sẽ dùng Append
    VD: Giả sử bảng A có 100 dòng, bảng B có 200 dòng. Khi combine sẽ có 300 dòng.
Append Queries

Trong bài viết Day 12, chúng ta đã tìm hiểu về chức năng Append Queries. Hôm nay, chúng ta sẽ tìm hiểu tiếp về chức năng Merge Queries.

Dạng 2: Merge Queries

“Merge” là một loại kết hợp truy vấn/bảng trong Power BI, khác với append, dựa vào cột trùng giữa 2 truy vấn/bảng để bổ sung thông tin vào truy vấn hay bảng. Kết quả của “Merge” sẽ là một truy vấn/bảng duy nhất với:

  • Phải có tiêu chí kết nối để khớp hai bảng (ví dụ: cột ID của cả hai bảng phải khớp với nhau).
  • Số dòng sẽ phụ thuộc vào tiêu chí khớp giữa các bảng. 
  • Số cột sẽ phụ thuộc vào các cột được chọn trong bộ kết quả. (“Merge” sẽ tạo ra một cột có cấu trúc làm kết quả). 
Merge Queries

Hiểu cách “Merge” hoạt động có vẻ phức tạp hơn một chút, nhưng sẽ rất dễ dàng với một ví dụ, hãy xem nó trong thực tế. 

Chúng ta cùng đi giải quyết một bài toán trong thực tế:

Bài toán: Bạn đang phát triển báo cáo Power BI cho phòng Bán hàng. Do bảng danh sách khách hàng đang thiếu thông tin về sales person chịu trách nhiêm nên mục tiêu của chúng ta là bổ sung thêm một cột thông tin Salesperson vào trong bảng danh sách khách hàng.

Chức năng Merge Queries

Tương tự như Append, trên tab Home trong Power Query Editor, phần drop-down Merge Queries bạn có 2 lựa chọn: 

  • Với Merge Queries as New: Kết quả của lựa chọn này là việc bổ sung thêm dữ liệu sẽ dẫn đến một bảng mới 
  • Với Merge Queries: Kết quả của lựa chọn này sẽ là thêm các cột từ một bảng hiện có vào một bảng khác. 

Như yêu cầu bài toán, chúng ta sẽ lựa chọn Merge Queries với thông tin như sau: 

Chúng ta sẽ cần phải lựa chọn những thông tin sau đây để 2 bảng có thể merge vào với nhau: 

  1. Lựa chọn bảng muốn Merge (Ở VD này là chúng ta đang Merge bảng Salesperson vào bảng KV_ALL.
  1. Lựa chọn cột chung để kết nối dữ liệu giữa 2 bảng (ở đây là cột CustomerID).
  1. Lựa chọn kiểu Join. (Đọc lại về Join)

Bước 1 và 2: Tương đối dễ dàng để xác định vì ngay từ yêu cầu đã thể hiện.

Tuy nhiên, trong 3 bước trên thì bước lựa chọn kiểu Join là bước khiến nhiều người nhầm lẫn nhất nên mình cung cấp một biểu đồ Venn để mọi người dễ hình dung: 

Có tổng cộng là 7 kiểu Join là  

INNER JOIN: chúng ta sẽ nhận được kết quả là cột chung giữa bảng 1 và bảng 2.

FULL OUTER : chúng ta sẽ nhận toàn bộ kết quả của các bảng. 

LEFT OUTER JOIN hay RIGHT OUTER JOINT: chúng ta sẽ nhận được kết quả là toàn bộ bảng 1 (bảng bên trái LEFT hoặc bên phải RIGHT) và thêm vào là những dòng giá trị matching ở bảng 2 có mã (Key) tồn tại ở trong bảng 1. 

LEFT ANTI JOIN hay RIGHT ANTI JOINT: chúng ta sẽ nhận được kết quả là các dòng giá trị bảng 1 (bảng bên trái LEFT JOIN hoặc bên phải RIGHT) mà KHÔNG có giá trị khớp với bảng 2 theo giá trị mã (Key). 

Trong trường hợp này, chúng ta lựa chọn Left Outer Join. Sau khi click OK, bảng KV_All sẽ xuất hiện thêm một cột mới với tên là “Salesperson”.

Chúng ta tiến hành bấm vào dấu để lấy các cột thông tin “Salesperson” mà chúng ta cần.  

Kết quả cuối cùng thu được như bảng sau:

Ngoài ra, để bạn hiểu thêm về các lựa chọn Join Kind trong Power BI, chúng mình có đình kèm ở đây một file Power BI biểu diễn trực quan các kết quả của từng loại phép Join để bạn tham khảo. 

Hy vọng rằng hai bài viết Day 12 và Day 13 đây đã giúp bạn hiểu rõ hơn về 2 hình thức kết hợp là Merge và Append Queries. Bạn hãy lưu bài viết để sử dụng khi cần nhé.

Chia sẻ bài viết này

Để lại một bình luận

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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.