Power Query – Cách xử lý trong trường hợp tên cột chiếm 2 dòng
Bài viết này hướng dẫn xử lý khi gặp trường hợp tên cột chiếm 2 dòng trong table excel.
Vấn đề:
Có 1 table trong excel như sau:
Yêu cầu chuyển table trên thành:
Thao tác thực hiện trên Power Query Editor:
Bước 1: Tách 2 dòng header của table:
Tạo một step mới sau đó nhập M-Code:
Table.FirstN(dataMaker_Table,2)
vào khung đỏ, khung xanh là kết quả thu được khi dùng M-Code trên.
Bước 2: chuyển table ở bước 1 thành 1 List:
Tạo một step mới sau đó nhập M-Code:
Table.ToColumns(#"2F row")
vào khung đỏ, khung xanh là kết quả khi dùng M-Code trên.
Bước 3: Nối tên của 2 dòng header
Tạo một step mới sau đó nhập M-Code:
List.Transform(#"To Column", each Text.Combine(_," "))
vào khung đỏ, khung xanh là kết quả khi dùng M-Code trên.
Bước 4: Chuyển List ở bước 3 thành 1 record.
Tạo một step mới sau đó nhập M-Code:
Record.FromList(#"List Transfrom", Table.ColumnNames(dataMaker_Table))
vào khung đỏ, chúng ta sẽ thu được kết quả như hình ở khung xanh bên dưới:
Bước 5: Lấy nội dung bảng (bỏ 2 dòng header table)
Tạo một step mới sau đó nhập M-Code:
Table.Skip(dataMaker_Table,2)
vào khung đỏ, thu được kết quả như khung xanh bên dưới:
Bước 6: Ghép tên cột và nội dung:
Tạo một step mới sau đó nhập M-Code:
Table.PromoteHeaders(Table.InsertRows(Content,0,{Header}))
vào khung đỏ, khung xanh là kết quả khi dùng M-Code trên.
Thao tác thực hiện nhanh bằng Advanced Editor:
Thay vì thực hiện từng bước như hướng dẫn trên, chúng ta có thể thực hiện nhanh bằng cách mở Advanced Editor và copy đoạn M-Code sau:
#"2F row" = Table.FirstN(dataMaker_Table,2),
#"To Column" = Table.ToColumns(#"2F row"),
#"List Transfrom" = List.Transform(#"To Column",each Text.Combine(_," ")),
Header = Record.FromList(#"List Transfrom", Table.ColumnNames(dataMaker_Table)),
Content = Table.Skip(dataMaker_Table,2),
Done = Table.PromoteHeaders(Table.InsertRows(Content,0,{Header}))
Sau đó dán đoạn M-code vừa copy vào như khung đỏ bên dưới:
Tới đấy phần xử lý trường hợp tên cột chiếm 2 dòng đã hoàn thành, chúc bạn thành công.
Trên đây là 1 cách xử lý khi tên cột chiếm 2 dòng, dataMaker sẽ thực hiện một vài các Tips & tricks về xử lý dữ liệu bằng Power Query, mời các bạn cùng đón đọc thêm ở các bài viết tiếp theo.