Chào mọi người,
Dạo gần đây mình có làm việc với một số file Excel mà dữ liệu đầu vào được trình bày dưới dạng một danh sách dài, mỗi mục trên một dòng. Tuy nhiên, yêu cầu cuối cùng lại cần chuyển đổi nó sang dạng bảng để dễ dàng phân tích và tạo báo cáo. Mình đã thử nhiều cách nhưng khá mất thời gian.
Hôm nay, mình muốn chia sẻ một mẹo nhỏ với Power Query để giải quyết vấn đề này một cách cực kỳ hiệu quả. Cách này đặc biệt hữu ích khi bạn có một danh sách các mục, và mỗi mục cần được phân tách thành các cột khác nhau dựa trên một quy tắc hoặc ký tự phân tách.
Ví dụ, bạn có dữ liệu dạng:
Mã SP_Tên SP_Số lượng_Giá bán
SP001_Bút bi_100_5000
SP002_Vở học sinh_200_7000
...
Và bạn muốn chuyển nó thành:
Mã SP | Tên SP | Số lượng | Giá bán
SP001 | Bút bi | 100 | 5000
SP002 | Vở học sinh | 200 | 7000
...
Cách thực hiện với Power Query:
- Đầu tiên, bạn cần đưa dữ liệu vào Power Query (Data > Get Data > From Other Sources > Blank Query hoặc From File nếu dữ liệu có sẵn).
- Trong cửa sổ Power Query Editor, chọn cột chứa dữ liệu dạng danh sách.
- Vào tab Transform, chọn Split Column > By Delimiter.
- Chọn ký tự phân tách (ví dụ: dấu gạch dưới `_`).
- Trong phần Advanced options, chọn Split into Rows nếu bạn muốn mỗi phần của chuỗi nằm trên một dòng riêng biệt, hoặc chọn Split into Columns để phân tách trực tiếp thành các cột. Tùy vào cấu trúc dữ liệu ban đầu mà bạn chọn phương án phù hợp.
- Nếu bạn chọn Split into Rows, bạn sẽ cần một bước tiếp theo để Pivot Column dữ liệu đã tách thành dạng bảng mong muốn.
Cách này giúp tự động hóa quá trình, tiết kiệm rất nhiều thời gian so với việc làm thủ công, đặc biệt với các file dữ liệu lớn. Hy vọng chia sẻ này hữu ích cho mọi người!