[Power Query Tutorial] Remove column và other column

Trong quy trình chuẩn bị và làm sạch dữ liệu, việc loại bỏ các cột không cần thiết là một trong những bước cơ bản nhưng lại có tác động lớn nhất đến hiệu suất của mô hình dữ liệu. Trong Power Query, bạn sẽ được cung cấp hai công cụ mạnh mẽ: Remove Column và Other Column. Bài viết này, Startrain sẽ giúp bạn hiểu rõ định nghĩa, sự khác biệt về mặt bản chất kỹ thuật (M-Code), cách chọn tính năng tối ưu nhất cho từng trường hợp và hướng dẫn từng bước trực quan dựa trên ví dụ thực tế.

Chức năng Remove Columns và Other Columns trong Power Query

Khi làm việc với các nguồn dữ liệu thô (như file CSV, Excel, SQL Database), bảng dữ liệu của bạn thường chứa rất nhiều cột thông tin phụ trợ không phục vụ cho việc báo cáo. Việc giữ lại các cột thừa này sẽ làm tăng dung lượng file, làm chậm tốc độ Refresh và gây bối rối trong quá trình viết công thức DAX hoặc tạo biểu đồ.

Để giải quyết vấn đề này, Power Query cung cấp nhóm tính năng Manage Columns nằm ngay trên tab Home. Trong đó có hai lựa chọn cốt lõi:

  • Remove Columns (Xóa các cột đã chọn): Khi bạn xác định được một hoặc một vài cột cụ thể chắc chắn không dùng tới (ví dụ: cột ghi chú, cột lỗi hệ thống, cột trống), bạn chọn chúng và ra lệnh xóa đi. Các cột còn lại không được chọn sẽ được giữ nguyên.
  • Remove Other Columns (Xóa các cột khác – Chỉ giữ lại cột đã chọn): Đây là tính năng đảo ngược cực kỳ hữu dụng. Khi bạn có một bảng dữ liệu khổng lồ với hàng chục, hàng trăm cột, nhưng bạn chỉ cần trích xuất khoảng 5 cột chính để làm báo cáo. Thay vì đi tìm và xóa từng cột một, bạn chỉ cần chọn 5 cột này và yêu cầu hệ thống xóa toàn bộ các cột còn lại.

Chọn đúng phương pháp quan trọng đối với hiệu suất và độ ổn định như thế nào?

Nhìn từ bên ngoài, kết quả cuối cùng của hai tính năng này có vẻ giống nhau – bạn đều có được một bảng dữ liệu sạch. Tuy nhiên, ở khía cạnh kỹ thuật sâu hơn:

  • Nếu dùng Remove Columns, Power Query sẽ lưu lại danh sách các cột cần xóa. Nếu trong tương lai, nguồn dữ liệu đầu vào xuất hiện thêm các cột mới, các cột mới này vẫn sẽ tự động xuất hiện trong bảng đích vì chúng không nằm trong danh sách bị xóa. Điều này có thể làm ảnh hưởng đến tính nhất quán của mô hình.
  • Nếu dùng Remove Other Columns, Power Query sẽ lưu lại danh sách các cột được giữ lại. Bất kể nguồn dữ liệu đầu vào sau này có thêm bao nhiêu cột mới đi chăng nữa, chúng đều sẽ bị loại bỏ hoàn toàn, chỉ giữ lại đúng các cột bạn đã chỉ định ban đầu. Điều này giúp mô hình dữ liệu luôn ổn định và không bị lỗi bất ngờ.

Ví dụ minh họa chức năng Remove Columns và Other Columns

Bước 1: Xác định cột cần xử lý và tìm công cụ trên thanh Ribbon

Trong ví dụ này, ta đang mở bảng FactTransactions trong cửa sổ Power Query Editor. Bảng này chứa nhiều cột như card_id, client_id, amount, date, errors, id, mcc, merchant_city, … Có thể thấy cột errors hiện đang chứa toàn bộ giá trị là “null”. Cột này hoàn toàn không có giá trị phân tích và cần được loại bỏ để làm sạch bảng dữ liệu.Nhấp chuột trái để chọn tiêu đề cột errors (cột sẽ được bôi đậm/chuyển màu xanh lá cây đậm). Tiếp theo, hướng mắt lên thanh công cụ phía trên (Ribbon), tại tab Home, tìm đến nhóm Manage Columns, bạn sẽ thấy nút Remove Columns có biểu tượng dấu “X” màu đỏ đè lên các cột.

Remove column & other column

Bước 2: Sử dụng tính năng “Remove Columns” để xóa cột lỗi

Khi nhấp vào mũi tên hướng xuống nhỏ bên cạnh nút Remove Columns, một menu thả xuống sẽ xuất hiện với hai lựa chọn. Bạn có hai tùy chọn là Remove Columns & Remove Other Columns. Trong trường hợp này, vì chúng ta chỉ muốn loại bỏ duy nhất cột errors đang được chọn, chúng ta sẽ di chuột và nhấp chọn vào dòng đầu tiên: Remove Columns.

Remove Column và Other Column

Bước 3: Xem kết quả sau khi thực hiện Remove Columns

Ngay sau khi nhấp chọn, cột errors đã biến mất hoàn toàn khỏi bảng dữ liệu. Cột errors không còn nằm giữa cột date và cột id nữa. Ở khung bên phải, trong danh sách các bước đã thực hiện (APPLIED STEPS), hệ thống đã tự động ghi nhận thêm một bước mới có tên là Removed Columns. Nếu sau này bạn muốn hoàn tác thao tác này, bạn chỉ cần nhấp vào dấu “X” màu đỏ bên cạnh tên bước này.

Remove column & other column

Bước 4: Thao tác chọn nhiều cột và sử dụng “Remove Other Columns”

Giả sử yêu cầu nghiệp vụ báo cáo chỉ cần giữ lại 5 cột thông tin cốt lõi bao gồm: card_id, client_id, amount, date, và id. Tất cả các cột thông tin phụ phía sau như mcc, merchant_city, merchant_city 2, … đều phải bị loại bỏ. Thay vì phải đi tìm và click xóa từng cột thừa một cách thủ công, chúng ta sẽ giữ những gì cần thiết và xóa phần còn lại.

Giữ phím Ctrl trên bàn phím, sau đó nhấp chuột trái lần lượt vào tiêu đề của 5 cột: card_id, client_id, amount, date và id. Các cột này sẽ được bôi đậm để báo hiệu đang được chọn đồng thời. Nhấp vào mũi tên thả xuống bên cạnh nút Remove Columns trên thanh Ribbon. Lần này, thay vì chọn dòng đầu, hãy nhấp chọn dòng thứ hai: Remove Other Columns (Xóa các cột khác).

Remove Column và Other Column

Bước 5: Kết quả với Remove Other Columns

Bảng dữ liệu ngay lập tức được rút gọn một cách tối đa, chỉ còn hiển thị đúng 5 cột mà bạn vừa chủ động lựa chọn ở bước trước. Trong khung Query Settings, một bước mới mang tên Removed Other Columns đã được thêm vào cuối danh sách các bước xử lý (APPLIED STEPS), nằm ngay sau bước “Removed Columns” trước đó.remove-column-other-column-5

Mã M đằng sau hai tính năng loại bỏ cột Remove Columns và Other Columns

Khi bạn thực hiện các thao tác click chuột trên giao diện Power Query, hệ thống sẽ tự động chuyển hóa hành động đó thành các dòng mã ngôn ngữ M đứng sau thanh công cụ Formula Bar.

Mã M của tính năng Remove Columns

Khi bạn chọn xóa một cột cụ thể, Power Query sẽ gọi hàm Table.RemoveColumns.

  • Cú pháp gốc: Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number)
  • Ví dụ: = Table.RemoveColumns(#”Changed Type”, {“errors”})

Giải thích các thành phần tham số:

  • #”Changed Type”: Là bảng dữ liệu đầu vào (lấy từ kết quả của bước trước đó có tên là “Changed Type”).
  • {“errors”}: Danh sách các cột cần xóa, các tên cột được viết trong dấu ngoặc nhọn dưới dạng chuỗi (Text). Nếu cần xóa nhiều cột, danh sách sẽ có dạng {“Cột A”, “Cột B”, “Cột C”}.

Mã M của tính năng Remove Other Columns

Khi bạn chọn giữ lại một số cột và xóa các cột còn lại, Power Query thực chất không sử dụng hàm loại bỏ, mà chuyển hướng sang dùng hàm giữ cột Table.SelectColumns.

  • Cú pháp gốc: Table.SelectColumns(table as table, columns as any, optional missingField as nullable number)
  • Ví dụ: = Table.SelectColumns(#”Removed Columns”, {“card_id”, “client_id”, “amount”, “date”, “id”})

Giải thích các thành phần tham số:

  • #”Removed Columns”: Là bảng dữ liệu đầu vào được lấy từ bước trước đó (bước “Removed Columns”).
  • {“card_id”, “client_id”, “amount”, “date”, “id”}: Danh sách định vị các cột bắt buộc phải giữ lại. Tất cả các cột khác nằm ngoài danh sách này sẽ bị loại bỏ hoàn toàn khỏi luồng xử lý.

Mẹo mã M nâng cao

Một điểm yếu chết người của hàm Table.SelectColumns là nếu một trong các cột được khai báo bị đổi tên hoặc bị xóa ở nguồn dữ liệu thô (ví dụ: cột client_id bị đổi tên thành customer_id), hệ thống Power Query sẽ lập tức báo lỗi đỏ (Expression.Error) và ngừng làm mới dữ liệu.Để khắc phục rủi ro này, bạn có thể chủ động sửa mã M-code trên Formula Bar bằng cách bổ sung tham số tùy chọn thứ ba: MissingField.UseNull hoặc MissingField.Ignore.

Từ:

= Table.SelectColumns(#"Removed Columns", {"card_id", "client_id", "amount", "date", "id"})

Thành (nên dùng):

= Table.SelectColumns(#"Removed Columns", {"card_id", "client_id", "amount", "date", "id"}, MissingField.UseNull)

Cơ chế hoạt động: Khi thêm MissingField.UseNull, nếu cột client_id bị thiếu ở nguồn cấp, Power Query sẽ không báo lỗi làm sập báo cáo nữa. Thay vào đó, nó sẽ tự động tạo ra một cột tạm thời mang tên client_id chứa toàn bộ giá trị trống (null). Điều này giúp hệ thống báo cáo tự động của bạn luôn vận hành trơn tru và an toàn.

Nên chọn Remove Columns hay Remove Other Columns trong thực tế?

Là một chuyên gia dữ liệu, việc quyết định chọn công cụ nào không chỉ dựa trên sự tiện lợi nhất thời mà còn dựa trên tính bền vững của hệ thống dữ liệu tự động. Dưới đây là bảng so sánh hướng dẫn quyết định nhanh:

Tiêu chíNên chọn “Remove Columns”Nên chọn “Remove Other Columns”
Số lượng cột cần loại bỏÍt (chỉ 1 vài cột rác cụ thể).Rất nhiều (bảng có 50 cột, chỉ lấy 5 cột).
Tính an toàn khi nguồn thêm cột mớiCao, nếu bạn muốn các cột mới xuất hiện trong báo cáo tương lai để cập nhật.Rất cao, nếu bạn muốn khóa chặt cấu trúc báo cáo, đảm bảo không bị cột lạ làm phình dung lượng.
Tốc độ thực hiện thủ côngNhanh hơn khi bạn chỉ thấy một cột ngứa mắt và muốn click chuột phải xóa ngay.Nhanh hơn khi bạn chỉ muốn giữ lại một nhóm nhỏ các cột quan trọng.
Hàm M-Code tương ứngTable.RemoveColumnsTable.SelectColumns

Tổng kết

Việc nắm vững cách phối hợp bộ đôi công cụ Remove Columns và Other Columns (Remove Column Other Column) trong Power Query là nền tảng cốt lõi giúp bạn tối ưu hóa hiệu suất mô hình dữ liệu một cách vượt trội. Trong thực tế xử lý hàng ngày, bạn nên ưu tiên chọn Remove Columns khi chỉ cần nhanh chóng dọn dẹp một vài cột rác cụ thể mà không lo ngại đến sự thay đổi cấu trúc của các cột còn lại ở nguồn dữ liệu gốc.

Ngược lại, hãy luôn tin dùng Remove Other Columns đối với các bảng dữ liệu lớn phục vụ cho các mô hình Power BI hoặc Pivot Table chuyên nghiệp nhằm giảm thiểu dung lượng file tải về, đồng thời bảo vệ hệ thống báo cáo một cách triệt để trước rủi ro biến động cấu trúc dữ liệu thô (Schema Drift) từ nguồn cấp.

Đặc biệt, việc chủ động kết hợp thêm tham số tùy chọn MissingField.UseNull trực tiếp vào ngôn ngữ M-code sẽ là chìa khóa vàng giúp bạn xây dựng nên những luồng biến đổi dữ liệu tự động có khả năng tự sửa lỗi cực kỳ mạnh mẽ, đảm bảo báo cáo tự động của doanh nghiệp luôn vận hành ổn định và trơn tru trong mọi tình huống bất ngờ ở nguồn cấp dữ liệu thô. Hy vọng bài viết này của Starttrain đã mang lại cho bạn những kiến thức thực chiến hữu ích để nâng tầm quy trình chuẩn bị dữ liệu hàng ngày của mình.

Nếu thường xuyên làm việc với báo cáo quản trị, khóa học Power BI tại Starttrain sẽ giúp bạn làm chủ DAX, mô hình dữ liệu và trực quan hóa dữ liệu hiệu quả hơn.

Danh sách bài giảng

Power Query trong Power BI
410
▶

[Power BI Tutorial 2] Cách dùng Power Query trong Power...

Starttrain Official

Index Column
219
▶

[Power Query Tutorial] Cách dùng chức năng Index Column

Starttrain Official

Cách dùng chức năng Pivot Column
214
▶

[Power Query Tutorial] Cách dùng chức năng Pivot Column

Starttrain Official

Unpivot Column
198
▶

[Power Query Tutorial] Cách dùng chức năng Unpivot Column

Starttrain Official

Duration
191
▶

[Power Query Tutorial] Cách dùng Duration trong Power BI

Starttrain Official

Promoted - Demoted Headers
250
▶

[Power Query Tutorial] Cách dùng Promoted – Demoted Headers

Starttrain Official

Cách dùng R-Python Script trong Power BI
187
▶

[Power Query Tutorial] Cách dùng R Script và Python Script

Starttrain Official

Scientific
156
▶

[Power Query Tutorial] Cách dùng Scientific trong Power BI

Starttrain Official

Standard
199
▶

[Power Query Tutorial] Cách dùng Standard trong Power BI

Starttrain Official

Statistics
215
▶

[Power Query Tutorial] Cách dùng Statistics trong Power BI

Starttrain Official

Form - đọc sách
Form - Single Report Template

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.

Form Dashboard service