Trong khi xử lý dữ liệu ở Power Query Editor, một trong những nhiệm vụ cơ bản và quan trọng, cũng như hay gặp phải khi xử lý dữ liệu (Transform Data) là công việc liên quan tới việc kết hợp hoặc gộp hai hay nhiều truy vấn/bảng.
Có hai loại tính năng kết hợp dữ liệu đó là Merge và Append.
Chúng ta sẽ cùng nhau đi tìm hiểu về 2 loại kết hợp này, sự khác biệt giữa chúng và những tình huống mà bạn nên sử dụng mỗi loại.
Tại sao phải kết hợp các bảng?
Khi bạn có rất nhiều các truy vấn/bảng và việc xử lý hàng chục hay hàng trăm bảng này một cách độc lập khiến chúng ta khó khăn. Chúng ta sẽ muốn gộp nó chung vào thành một truy vấn/bảng. Hoặc là truy vấn/bảng của chúng ta cần bổ sung thêm thông tin để thêm nhiều chiều dữ liệu. Kết hợp các bảng là một cách hữu hiệu trong việc tạo ra một bảng mới tốt hơn và đơn giản hơn.
Có 2 dạng chính của việc kết hợp dữ liệu 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.

Trong bài viết này, chúng ta sẽ tìm hiểu về dạng Append Queries.
Dạng 1: Append Queries
Append Queries là kết quả của hai (hoặc nhiều hơn) truy vấn/bảng được kết hợp thành một theo cách sau:
- Các dòng sẽ được thêm vào nhau. (ví dụ: một bảng có 50 dòng với một bảng khác có 100 dòng, khi append 2 bảng sẽ trả về kết quả có 150 dòng)
- Các cột sẽ giống với số cột của các bảng thành phần (ví dụ, col1, col2, …, col10 trong bảng đầu tiên, sau khi nối với cùng các cột trong bảng thứ hai sẽ tạo ra một bảng với một bộ col1, col2, …, col10).
Lý thuyết là như vậy, chúng ta sẽ đi cùng với nhau giải quyết một bài toán thực tế để hiểu hơn về cách thức xử lý của Append Queries
Ví dụ: Bạn đang phát triển báo cáo Power BI cho phòng Bán hàng. Do phòng bán hàng quản lý danh sách khách hàng theo từng khu vực nên danh sách khách hàng được chia thành nhiều bảng riêng lẻ.
Dữ liệu khách hàng sẽ đến từ 3 bảng khu vực (KV) khác nhau: Khu vực TP Hà Nội, TP HCM, TP Đà Nẵng với thông tin cơ bản như bảng dưới:

Yêu cầu: Gộp các bảng này thành một bảng total (KV_ALL) để thuận tiện cho việc phân tích.
Cách giải quyết:

Trên tab Home trong Power Query Editor, trong phần drop-down của Append Queries bạn có 2 lựa chọn:
- Với Append 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 Append Queries: Kết quả của lựa chọn này sẽ là thêm các dòng từ một bảng hiện có vào một bảng khác.
Vì yêu cầu của đề bài mong muốn tạo ra một bảng mới KV_ALL nên mình sẽ lựa chọn Append Queries as New.
Khi bấm vào lựa chọn Append Queries as New: Màn hình sẽ hiển thị cửa sổ như hình sau:

Chúng ta lựa chọn cả 3 bảng thành phần vào khu vực append và bấm OK

Sau đó, mình có thể đổi tên bảng thành KV_ALL như yêu cầu.
Tuy nhiên, có một số lưu ý về số cột mà chúng ta cần lưu ý khi sử dụng Append:
- Hoạt động của “Append” tương tự như “UNION ALL” trong T-SQL.
- “Append Queries” sẽ KHÔNG loại bỏ các dòng giá trị Duplicate. Bạn phải sử dụng các công cụ khác như “Group By” hoặc “Remove Duplicate Rows” để loại bỏ các giá trị duplicate.
- “Append” yêu cầu tên các cột phải chính xác giống nhau để hoạt động trong điều kiện tốt nhất. Trong trường hợp, các tên cột trong các bảng không khớp chính xác (cùng 1 tên cột nhưng được viết hoa và viết thường cũng sẽ khác nhau) thì “Append” vẫn hoạt động, nhưng sẽ tạo ra một cột mới trong bảng mới được tạo ra, nếu một trong các bảng không có cột đó, giá trị ô của cột đó cho những dòng đó sẽ là null. Trường hợp khác nữa là cột trùng tên nhưng kiểu dữ liệu khác nhau thì Append vẫn ghép vào đúng cột tên đó nhưng lúc đó cột sẽ thể hiện theo cả 2 kiểu dữ liệu. Bạn lưu ý để tiến hành điều chỉnh kiểu dữ liệu sau đó để tránh trường hợp báo lỗi về sau.

- Trong trường hợp, vị trí các cột trong bảng được sắp xép khác nhau. Tuy nhiên, tên của các cột vẫn khớp chính xác nhau thì bảng được Append dữ liệu vẫn sắp xếp vị trí đúng theo từng cột nhé. Thứ tự các cột sẽ được lấy theo thứ tự của bảng đầu tiên khi sắp xếp append.

Đọc tiếp: Dạng 2: Gộp bảng với tính năng Merge Queries

