[Power Query Tutorial] Cách Duplicate Column trong Power BI

Duplicate column là thao tác nhân bản một hoặc nhiều cột dữ liệu có sẵn thành các cột mới giống hệt trong Power Query Editor. Thao tác này sao chép nguyên vẹn giá trị, định dạng và kiểu dữ liệu của cột nguồn mà không làm thay đổi hay gián đoạn cấu trúc dữ liệu ban đầu, phục vụ cho các bước trích xuất, chuẩn hóa hoặc tính toán tiếp theo.

Chức năng Duplicate Column là gì?

Trong quy trình làm sạch và chuyển đổi dữ liệu (ETL), duplicate column đóng vai trò là bước đệm an toàn giúp người dùng tách biệt dữ liệu gốc với dữ liệu biến đổi.

Đặc điểm kỹ thuật của cột được tạo từ Duplicate Column:

  • Kế thừa 100% kiểu dữ liệu của cột gốc (Text, Whole Number, Decimal, Date/Time, …)
  • Power Query sẽ tự động gắn thêm hậu tố – Copy vào sau tên cột gốc. Nếu tiếp tục nhân bản, hệ thống tự động sinh số thứ tự như Column2 – Copy.1, Column2 – Copy.2, …
  • Sau khi bước duplicate column hoàn tất, mọi thao tác chỉnh sửa (lọc, thay thế chuỗi, đổi kiểu, tách cột, …) trên cột mới sẽ không ảnh hưởng ngược lại cột nguồn.

Khi nào nên sử dụng Duplicate Column?

Bảo tồn trường dữ liệu gốc cho mô hình quan hệ

Trong thiết kế mô hình dữ liệu, việc giữ lại cột gốc như ngày tháng năm đầy đủ là rất quan trọng để tạo các khóa liên kết. Bạn có thể nhân bản một cột riêng để trích xuất năm, quý hoặc tháng nhằm phục vụ việc tạo slicer lọc báo cáo.

Xử lý chuỗi văn bản phức tạp mà không làm mất thông tin

Khi bạn cần bóc tách họ và tên hay địa chỉ chi tiết, thao tác Split Column sẽ phân rã trực tiếp trường dữ liệu được chọn. Việc nhân bản cột trước khi tách giúp bạn thoải mái chuẩn hóa chuỗi mà vẫn duy trì được trường dữ liệu gốc đối soát.

Thử nghiệm các logic biến đổi dữ liệu an toàn

Nếu cần kiểm tra các công thức M phức tạp hoặc lệnh thay thế giá trị, việc thao tác trên cột nhân bản là một giải pháp dự phòng lý tưởng. Toàn bộ cấu trúc và dữ liệu nguồn của bảng ETL sẽ không bị ảnh hưởng nếu phát sinh lỗi trong quá trình xử lý.

Minh họa thực tế chức năng Duplicate Column trong Power Query

Bạn có thể thực hiện nhân bản cột nhanh chóng trong Power Query theo hai cách dưới đây.

Nhân bản cột qua thanh công cụ Ribbon (Add Column)

  • Bước 1: Nhấp chuột trái vào tiêu đề cột cần nhân bản trên bảng dữ liệu (ví dụ chọn cột Column2).
  • Bước 2: Trên thanh công cụ phía trên màn hình, nhấp chọn tab Add Column.
  • Bước 3: Tìm đến nhóm công cụ General ở góc trái và nhấp vào biểu tượng lệnh Duplicate Column.

Duplicate Column

  • Kết quả nhận được:
    • Ngay lập tức, một cột mới xuất hiện mang tên Column2 – Copy nằm liền kề bên phải.
    • Toàn bộ giá trị dữ liệu và định dạng số nguyên được sao chép nguyên vẹn từ cột Column2.
    • Khung Applied Steps bên phải tự động ghi nhận thêm một bước xử lý mới có tên là Duplicated Column.
    • Thanh công thức (Formula Bar) hiển thị mã lệnh: = Table.DuplicateColumn(#”Changed Type”, “Column2”, “Column2 – Copy”).

Duplicate Column

Nhân bản nhanh bằng chuột phải (Context Menu)

Đây là thao tác tiện lợi và được các chuyên viên dữ liệu áp dụng thường xuyên nhất trong thực tế:

  • Bước 1: Nhấp chuột phải trực tiếp vào tiêu đề cột dữ liệu cần sao chép (ví dụ: Column2).
  • Bước 2: Bảng danh mục thao tác nhanh mở ra, tìm và nhấp chọn lệnh Duplicate Column. Cột mới sẽ lập tức được tạo ra mà bạn không cần phải di chuyển qua lại giữa các tab trên thanh công cụ.

Duplicate Column

Cơ chế tự động đánh số khi thực hiện Duplicate Column liên tiếp

Trong trường hợp bạn cần nhân bản nhiều lần trên cùng một trường dữ liệu:

  • Khi tiếp tục chọn lệnh duplicate trên cột nguồn hoặc cột đã sao chép, Power Query sẽ tự động bổ sung số thứ tự vào sau tên cột mới (ví dụ: Column2 – Copy.1, Column2 – Copy.2).
  • Thao tác này giúp cấu trúc bảng luôn đảm bảo tính duy nhất của tên cột, tránh phát sinh lỗi trùng lặp định danh.
  • Danh sách các bước trong Applied Steps sẽ lần lượt ghi nhận thêm các bước tương ứng như Duplicated Column1.

Duplicate Column

Bản chất M code của chức năng Duplicate Column

Giao diện kéo thả của Power Query bản chất là một bộ sinh mã (code generator) cho ngôn ngữ M. 

Hàm Table.DuplicateColumn

Hàm phụ trách thao tác duplicate column là:

Table.DuplicateColumn(table as table, oldColumnName as text, newColumnName as text, optional columnType as nullable type) as table

Chi tiết các tham số của hàm:

  1. table: Tên của bảng hoặc định danh của bước biến đổi trước đó (ví dụ: #”Changed Type”).
  2. oldColumnName: Tên chính xác của cột nguồn cần nhân bản (dưới dạng chuỗi văn bản text).
  3. newColumnName: Tên đặt cho cột mới được sinh ra (dưới dạng chuỗi văn bản text).
  4. columnType (tùy chọn): Khai báo trực tiếp kiểu dữ liệu cho cột mới (như Int64.Type, type text, type date). Nếu bỏ trống, Power Query tự động gán kiểu dữ liệu hiện thời của cột nguồn.

Thực tế dòng lệnh M được tạo ra:

= Table.DuplicateColumn(#”Changed Type”, “Column2”, “Column2 – Copy”)

  • #”Changed Type”: Trỏ vào bước dữ liệu ngay trước đó.
  • “Column2”: Xác định trường dữ liệu cần nhân bản.
  • “Column2 – Copy”: Tên cột mới tạo.

Mẹo tối ưu M Code

Thay vì nhân bản xong rồi click đúp chuột để đổi tên cột (thao tác này sẽ sinh thêm một bước Table.RenameColumns làm tăng số bước trong Applied Steps), bạn có thể sửa trực tiếp tên cột mong muốn ngay trên thanh Formula Bar:

= Table.DuplicateColumn(#”Changed Type”, “Column2”, “Column2_Backup”)

Cách xử lý này giúp câu lệnh gọn gàng, giảm bớt số bước lưu trữ trong metadata và tối ưu tốc độ refresh.

Các lỗi thường gặp khi sử dụng Duplicate Column

Dù là thao tác đơn giản, việc duplicate column vẫn có thể gây lỗi gãy luồng xử lý hoặc làm chậm quá trình làm mới dữ liệu. Dưới đây là hai tình huống phổ biến và hướng khắc phục.

Lỗi không tìm thấy cột nguồn (Expression.Error: The column wasn’t found)

Lỗi Expression.Error: The column ‘Column2’ of the table wasn’t found xuất hiện khi tên cột nguồn bị thay đổi ở tệp dữ liệu gốc hoặc bị đổi tên trong các bước biến đổi trước đó. Do hàm Table.DuplicateColumn cố định cứng tên cột dưới dạng chuỗi văn bản, chỉ cần lệch một ký tự hoặc khoảng trắng là toàn bộ quy trình sẽ bị dừng lại.

Để khắc phục, bạn hãy kiểm tra lại bước liền trước trong khung Applied Steps hoặc mở thanh công thức để sửa lại tên cột cho khớp với thực tế. Trong trường hợp dữ liệu nguồn thường xuyên biến động tiêu đề, bạn nên thiết lập bước chuẩn hóa tên cột bằng vị trí Index hoặc dynamic column mapping trước khi gọi lệnh nhân bản.

Lỗi trùng lặp bước xử lý và phình to Applied Steps

Trong quá trình thực hành, người dùng thường có thói quen duplicate cột rồi tiếp tục click đúp để đổi tên hoặc thử nghiệm xóa đi làm lại nhiều lần. Thao tác này vô tình sinh ra hàng loạt bước trung gian như Duplicated Column1, Duplicated Column2, Renamed Columns khiến quy trình ETL trở nên nặng nề và khó bảo trì.

Để giải quyết, bạn hãy mở công cụ Advanced Editor trên thẻ Home để rà soát lại toàn bộ kịch bản M code của bảng. Tại đây, bạn có thể xóa bớt các dòng mã nhân bản thừa thãi hoặc gộp trực tiếp tên cột mong muốn vào tham số thứ ba của hàm Table.DuplicateColumn để quy trình luôn tinh gọn và tối ưu tốc độ làm mới.

[FAQ] Một số thắc mắc về Duplicate Column trong Power Query

Duplicate Column có làm tăng dung lượng file không?

Có, nếu bạn giữ nguyên cột nhân bản đó và tải trực tiếp vào Data Model.

Công cụ lưu trữ VertiPaq của Power BI phải nén thêm một cột dữ liệu riêng biệt, làm tiêu tốn thêm bộ nhớ RAM. Do đó, nếu chỉ nhân bản cột để làm bước đệm biến đổi trung gian, bạn hãy nhớ xóa cột thừa trước khi nhấn Close & Apply.

Duplicate Column khác gì so với tạo Custom Column dạng =[Column]?

Duplicate Column sử dụng hàm Table.DuplicateColumn, tự động kế thừa nguyên vẹn kiểu dữ liệu của cột nguồn mà không cần thêm bước trung gian.

Ngược lại, khi tạo Custom Column bằng cú pháp =[Column], Power Query sẽ gọi hàm Table.AddColumn với kiểu dữ liệu mặc định là Any. Điều này buộc bạn phải thực hiện thêm một bước đổi kiểu dữ liệu (Changed Type), làm tăng số bước trong Applied Steps.

Có thể thực hiện Duplicate Column cho nhiều cột cùng lúc được không?

Hoàn toàn có thể. Bạn chỉ cần giữ phím Ctrl (để chọn từng cột rời rạc) hoặc giữ phím Shift (để chọn một dải cột liên tiếp), sau đó nhấp chuột phải và chọn Duplicate Column. Power Query sẽ tự động nhân bản toàn bộ các cột đã chọn cùng lúc chỉ trong một bước xử lý duy nhất.

Thay đổi dữ liệu trên cột nhân bản có làm ảnh hưởng đến cột gốc không?

Không. Cột được tạo ra từ lệnh Duplicate Column là một thực thể độc lập trong bảng dữ liệu. Mọi thao tác như lọc dòng, thay thế chuỗi hay tách cột thực hiện trên cột mới hoàn toàn không tác động ngược lại giá trị của cột ban đầu.

Tổng kết

Duplicate Column là một trong những tính năng cơ bản nhưng đóng vai trò then chốt trong quy trình chuẩn hóa và làm sạch dữ liệu với Power Query. Bằng cách nắm vững cả thao tác giao diện lẫn bản chất hàm Table.DuplicateColumn trong ngôn ngữ M, bạn có thể chủ động bảo vệ các trường dữ liệu gốc, linh hoạt tạo ra các nhánh phân tích và tối ưu quy trình ETL một cách chuyên nghiệp. Hãy luôn nhớ loại bỏ các cột nháp không sử dụng trước khi đóng Power Query Editor để giữ cho mô hình dữ liệu của bạn luôn gọn nhẹ và đạt hiệu năng tối ưu nhất.

Danh sách bài giảng

Power Query trong Power BI
406
▶

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

Starttrain Official

Index Column
217
▶

[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
197
▶

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

Starttrain Official

Duration
190
▶

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

Starttrain Official

Promoted - Demoted Headers
247
▶

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

Starttrain Official

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

[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
197
▶

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

Starttrain Official

Statistics
213
▶

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

Starttrain Official

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

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