Đị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 quá trình xử lý và làm sạch dữ liệu bằng Power Query, bạn sẽ thường xuyên gặp phải tình huống dữ liệu nguồn bị sắp xếp ngược so với nhu cầu phân tích. Khi đó, tính năng Reverse Rows chính là công cụ đơn giản nhưng vô cùng hiệu quả giúp bạn giải quyết vấn đề nhanh chóng.
Bài viết này, Starttrain sẽ hướng dẫn chi tiết cách sử dụng chức năng Reverse Rows trong Power Query, giải thích mã M-Code đằng sau, kèm theo các ứng dụng thực tế giúp tối ưu hóa quy trình xử lý dữ liệu của bạn.
Chức năng Reverse Rows trong Power Query là thao tác đảo ngược thứ tự các dòng trong một bảng dữ liệu. Khi áp dụng Reverse Rows, dòng cuối cùng của bảng sẽ trở thành dòng đầu tiên, dòng kế cuối sẽ thành dòng thứ hai và tiếp tục như vậy cho đến khi dòng đầu tiên chuyển xuống vị trí cuối cùng.
Bạn có thể tìm thấy nút Reverse Rows ở hai vị trí trên thanh ribbon của Power Query Editor:
Khác biệt giữa Reverse Rows và Sort
Dưới đây là từng bước thực hiện tính năng Reverse Rows cùng phân tích chi tiết dựa trên giao diện thực tế.
Các bước thực hiện:
Trong giao diện Power Query Editor, người dùng chọn thẻ Transform trên thanh Ribbon. Tại nhóm chức năng Table, chuột đang rê vào nút Reverse Rows.
Trong danh sách các dòng ban đầu (bước Changed Type), dữ liệu được xếp theo thứ tự gốc. Cụ thể, các dòng đầu tiên chứa card_id có giá trị là 19, client_id là 115, giao dịch ngày 8/31/2023. Danh sách bước xử lý APPLIED STEPS ở khung bên phải chỉ mới dừng lại ở bước Changed Type.

Kết quả sau khi áp dụng Reverse Rows

Mặc dù bạn có thể thao tác hoàn toàn bằng giao diện click chuột, việc hiểu mã M-Code đằng sau giúp bạn làm chủ công cụ và tùy biến kịch bản xử lý dữ liệu nâng cao trong cửa sổ Advanced Editor.
Table.ReverseRows(table as table) as table
Trong đó, table là bảng dữ liệu đầu vào mà bạn muốn đảo ngược các dòng (thường là tên của bước xử lý ngay trước đó, ví dụ: #”Changed Type” hoặc #”Promoted Headers”).
Đã copy xong!
let
Source = Csv.Document(File.Contents("C:\Data\FactTransactions.csv"), [Delimiter=",", Encoding=65001]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers", {{"card_id", Int64.Type}, {"amount", type number}}),
// Bước thực hiện đảo ngược thứ tự các dòng
#"Reversed Rows" = Table.ReverseRows(#"Changed Type")
in
#"Reversed Rows"Nhiều doanh nghiệp sử dụng file Excel hoặc CSV thủ công để quản lý thông tin. Nhân viên thường ghi nhận thông tin mới bằng cách chèn thêm dòng ở dưới cùng của bảng. Do không có cột thời gian hoặc mã giao dịch tự tăng (Auto-increment ID), bạn không thể dùng lệnh Sort để tìm bản ghi mới nhất.
Nếu bạn dùng trực tiếp tính năng Remove Duplicates trên cột Mã khách hàng, Power Query mặc định luôn giữ lại dòng đầu tiên (tương ứng với bản ghi cũ nhất trong quá khứ) và xóa mất dòng mới nhập ở cuối file.
Quy trình xử lý với Reverse Rows:
Các file Log của hệ thống Server, phần mềm ERP hoặc hệ thống ghi nhận lịch sử giao dịch ngân hàng thường ghi thêm dữ liệu theo trình tự thời gian tăng dần.
Quy trình xử lý:
Trong một số mô hình phân tích nâng cao, bạn cần đánh số thứ tự dòng theo chiều ngược lại: dòng dưới cùng (mới nhất) mang số index là 1, các dòng cũ hơn bên trên mang chỉ số 2, 3, 4….
Quy trình xử lý:
Hàm Table.ReverseRows thường không hỗ trợ Query Folding trên phần lớn các hệ quản trị cơ sở dữ liệu (SQL Server, MySQL…). Điều này có nghĩa là Power Query phải tải toàn bộ dữ liệu về bộ nhớ cục bộ trước khi thực hiện phép lật ngược dòng.
Nếu làm việc với cơ sở dữ liệu quan hệ, hãy ưu tiên sắp xếp theo một cột thứ tự (Order By/Sort) ở mức nguồn SQL trước khi đẩy vào Power Query.
Nên lọc loại bỏ bớt dữ liệu thừa (Remove Rows, Filter Nulls) trước khi bấm nút Reverse Rows. Việc giảm số lượng dòng xử lý giúp lệnh Table.ReverseRows chạy nhanh hơn đáng kể.
Nếu dữ liệu nguồn không có thứ tự cố định (ví dụ: truy vấn từ API hoặc NoSQL), việc dùng Reverse Rows có thể cho ra kết quả không đồng nhất giữa các lần Refresh. Hãy đảm bảo dữ liệu nguồn có thứ tự nhất định trước khi đảo dòng.
Tính năng Reverse Rows trong Power Query là một công cụ xử lý dữ liệu nhỏ gọn nhưng sở hữu tính ứng dụng vô cùng linh hoạt. Dù không căn cứ vào giá trị cụ thể của các cột như các lệnh Sort thông thường, Reverse Rows lại tỏ ra vượt trội trong việc giải quyết các bài toán đảo ngược trình tự vật lý, trích xuất bản ghi cập nhật mới nhất từ file thô, tạo chỉ số Index đếm ngược hay xử lý danh sách Log files.
Bằng cách nắm vững thao tác trên giao diện, hiểu rõ cú pháp M-Code Table.ReverseRows, cũng như kết hợp linh hoạt với các lệnh hỗ trợ, bạn sẽ tiết kiệm đáng kể thời gian làm sạch dữ liệu và xây dựng được các luồng xử lý tự động tối ưu nhất cho báo cáo của mình.
Nếu muốn học Excel nâng cao cho phân tích dữ liệu bạn có thể tham khảo khóa Excel for Business Analytics tại Starttrain
Đã copy xong!

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.




