Chào mọi người,
Dạo này mình hay phải xử lý các file dữ liệu mà các cột thông tin được gộp chung vào một ô, ngăn cách bởi nhiều loại ký tự khác nhau như dấu phẩy, chấm phẩy, gạch ngang, hoặc thậm chí là ký tự đặc biệt. Việc dùng chức năng 'Text to Columns' trong Excel đôi khi không hiệu quả vì nó chỉ xử lý được một loại ký tự phân tách cố định.
Mình tình cờ khám phá ra Power Query có một cách xử lý cực kỳ mạnh mẽ cho trường hợp này. Thay vì phải ngồi tách thủ công hay dùng công thức phức tạp, mình có thể tự động hóa hoàn toàn quy trình này.
Cách làm như sau:
- Đầu tiên, đưa dữ liệu vào Power Query (vào tab Data -> Get Data -> From File -> From Workbook/Text/CSV...).
- Trong cửa sổ Power Query Editor, chọn cột chứa chuỗi ký tự cần tách.
- Vào tab Add Column, chọn Custom Column.
- Trong ô công thức, nhập vào hàm
Text.SplitAny. Hàm này cho phép bạn chỉ định một tập hợp các ký tự phân tách. Ví dụ, nếu bạn muốn tách bởi dấu phẩy (,) và dấu chấm phẩy (;), bạn sẽ nhập:Text.SplitAny([TênCộtCủaBạn], {",", ";"}). Lưu ý thay[TênCộtCủaBạn]bằng tên cột thực tế của bạn. - Hàm này sẽ trả về một List chứa các phần tử đã được tách ra.
- Tiếp theo, bạn có thể nhấp vào biểu tượng mũi tên đôi ở tiêu đề cột mới tạo để Expand to New Rows (nếu muốn mỗi phần tử là một dòng riêng) hoặc Expand to New Columns (nếu muốn mỗi phần tử là một cột riêng). Nếu chọn Expand to New Columns, Power Query sẽ tự động tạo các cột mới cho từng phần tử.
- Cuối cùng, bạn có thể làm sạch các cột mới này (ví dụ: xóa khoảng trắng thừa bằng Trim) và Close & Load để đưa kết quả về Excel.
Cách này thực sự tiết kiệm rất nhiều thời gian và công sức, đặc biệt với những file dữ liệu lớn và phức tạp. Hy vọng chia sẻ này hữu ích cho các bạn!