Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Trong kỷ nguyên phân tích dữ liệu, việc sở hữu một bộ dữ liệu sạch là yếu tố quyết định 80% sự thành công của một báo cáo Power BI hay Excel. Một trong những nhóm tính năng quan trọng và được sử dụng thường xuyên nhất để tinh lọc dữ liệu thô chính là Remove Rows trong Power Query.
Bài viết này, Starttrain sẽ cung cấp cho bạn cái nhìn toàn diện, chuyên sâu về cách vận hành, các trường hợp ứng dụng thực tế của nhóm chức năng Remove Rows, kèm theo phân tích ảnh chụp thực tế và hướng dẫn viết mã code M tối ưu nhất.
Trong quy trình phân tích dữ liệu chuyên nghiệp, bước ETL (Extract – Transform – Load) luôn chiếm phần lớn thời gian của một kỹ sư dữ liệu. Khi kết nối Power Query với các nguồn dữ liệu thô chưa qua xử lý như file CSV, trang tính Excel từ phòng kế toán, hệ thống ERP (như SAP, Oracle) hay cơ sở dữ liệu SQL Server, dữ liệu nhận về hiếm khi ở trạng thái lý tưởng. Bạn sẽ liên tục đối mặt với rác dữ liệu bao gồm:
Chức năng Remove Rows nằm trong tab Home, thuộc nhóm công cụ Reduce Rows trên thanh Ribbon của Power Query Editor. Chức năng này cho phép bạn loại bỏ các dòng không mong muốn theo các quy tắc thiết lập sẵn.
Dưới đây là giải thích chi tiết, cách hoạt động và trường hợp ứng dụng cụ thể của cả 6 tùy chọn có trong menu Remove Rows:
Để giúp bạn hiểu rõ hơn về cách các chức năng này hoạt động trên giao diện thực tế của Power Query Editor, chúng ta sẽ cùng phân tích chi tiết chuỗi 10 hình ảnh thao tác thực tế trên bảng dữ liệu giao dịch có tên là FactTransactions.
Giao diện cho thấy nút lệnh Remove Rows nằm tại tab Home, khu vực Reduce Rows. Khi người dùng nhấp chuột vào biểu tượng này, một menu thả xuống xuất hiện bao gồm đầy đủ 6 tùy chọn chính xác như đã mô tả: Remove Top Rows, Remove Bottom Rows, Remove Alternate Rows, Remove Duplicates, Remove Blank Rows và Remove Errors.
Cấu trúc bảng dữ liệu FactTransactions: Bảng có 18 cột (hiển thị ở thanh trạng thái dưới cùng bên trái: “18 COLUMNS, 999+ ROWS”). Các cột chính hiển thị bao gồm: card_id, client_id, amount (kiểu số Decimal), date (kiểu ngày giờ datetime), errors (chứa các giá trị null), mcc, và merchant_city (kiểu văn bản text). Ở bảng này, các bước biến đổi dữ liệu (Applied Steps) hiện tại dừng ở bước “Changed Type”.
Khi nhấp chọn Remove Top Rows, một hộp thoại nhỏ có tiêu đề “Remove Top Rows” xuất hiện giữa màn hình. Giao diện yêu cầu nhập thông số tại mục “Number of rows”.
Trong hình, người dùng đã nhập số 2 vào ô này. Bảng dữ liệu phía sau cho thấy dòng số 1 đang có giá trị cột amount là -62 và dòng số 2 có giá trị amount là 1.75.

Kết quả: Sau khi nhấn OK, một bước mới có tên Removed Top Rows được ghi nhận vào danh sách “Applied Steps” ở bảng điều khiển bên phải. Hãy chú ý vào thanh công thức (Formula Bar), mã M-code tự động sinh ra là:
= Table.Skip(#”Changed Type”,2)
Lúc này, hai dòng đầu tiên cũ (chứa giá trị -62 và 1.75) đã biến mất hoàn toàn. Dòng số 1 mới bây giờ bắt đầu bằng giá trị amount là 2.41 (trước đó là dòng số 3).

Người dùng mở menu thả xuống và chọn Remove Bottom Rows. Hộp thoại “Remove Bottom Rows” yêu cầu nhập số lượng dòng muốn xóa từ dưới đáy lên. Ở đây, con số được nhập vào là 100.

Kết quả: Sau khi xác nhận, bước Removed Bottom Rows được thêm vào “Applied Steps”. Thanh công thức hiển thị mã code M như sau:
= Table.RemoveLastN(#”Changed Type”,100) Hệ thống đã tự động cắt bỏ đúng 100 dòng dữ liệu cuối cùng của bảng FactTransactions.

Khi chọn tùy chọn này, hộp thoại “Remove Alternate Rows” hiện lên với 3 trường thông tin trống. Người dùng đã thiết lập cấu hình:



Đây là một thao tác cực kỳ quan trọng đòi hỏi người dùng phải chọn cột làm mốc trước khi nhấn lệnh. Cột client_id đã được nhấp chọn. Sau đó, người dùng chọn lệnh Remove Duplicates từ menu.
Kết quả: Bước mới có tên Removed Duplicates xuất hiện.
Công thức M-code thực thi là: = Table.Distinct(#”Changed Type”, {“client_id”})
Quan sát kỹ bảng kết quả, toàn bộ các dòng trùng lặp ID khách hàng ở cột client_id đã được loại bỏ hoàn toàn, chỉ giữ lại những mã ID duy nhất (Distinct). Ví dụ, các dòng tiếp theo sau ID 115 đều đã bị xóa nếu chúng có cùng mã client_id này, khiến số lượng dòng của bảng giảm đi đáng kể.

Nếu bạn là một nhà phát triển dữ liệu chuyên nghiệp, việc hiểu và làm chủ mã nguồn M-code của Power Query sẽ giúp bạn tùy biến các bước biến đổi dữ liệu linh hoạt hơn mà không cần phụ thuộc hoàn toàn vào giao diện kéo thả.
Dưới đây là bảng tổng hợp các hàm M tương ứng với từng chức năng trong menu Remove Rows:
| Chức năng trên giao diện | Hàm M-code tương ứng | Cú pháp chi tiết |
| Remove Top Rows | Table.Skip | Table.Skip(table, count_or_condition) |
| Remove Bottom Rows | Table.RemoveLastN | Table.RemoveLastN(table, count) |
| Remove Alternate Rows | Table.AlternateRows | Table.AlternateRows(table, offset, skip, take) |
| Remove Duplicates | Table.Distinct | Table.Distinct(table, optional equationCriteria) |
| Remove Blank Rows | Table.SelectRows | Table.SelectRows(table, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {null, “”}))) |
| Remove Errors | Table.RemoveRowsWithErrors | Table.RemoveRowsWithErrors(table, optional columns) |
Việc nắm vững bộ công cụ Remove Rows trong Power Query là mảnh ghép không thể thiếu giúp bạn xây dựng những mô hình dữ liệu chuẩn mực và tối ưu hiệu suất tốt nhất. Bằng cách chủ động loại bỏ các dòng trống nhiễu, khử trùng các bản ghi trùng lặp nguy hiểm hoặc xử lý triệt để các dòng lỗi hệ thống ngay từ bước đầu, bạn đang trực tiếp bảo vệ tính chính xác cho các phép toán DAX và tăng tốc độ tải của báo cáo lên đáng kể.
Nếu muốn thực hành chuyên sâu hơn với Power Query, Data Model và DAX, bạn có thể tham khảo khóa học Power BI để xây dựng quy trình xử lý dữ liệu hoàn chỉnh.

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official
Vui lòng liên hệ qua những thông tin bên dưới. Starttrain sẽ phản hồi bạn trong thời gian sớm nhất.




