Chào các anh chị em trong diễn đàn,
Dạo này mình hay gặp phải tình huống dữ liệu đầu vào nó không được 'sạch' cho lắm, đặc biệt là các danh sách mà các mục lại được phân tách bằng ký tự đặc biệt hoặc nằm trong một ô duy nhất. Ví dụ như thế này:
Dữ liệu: 'Táo, Chuối, Cam; Dứa, Xoài; Ổi'
Trong ví dụ trên, chúng ta có 3 nhóm trái cây, nhưng mỗi nhóm lại được ngăn cách bởi dấu chấm phẩy (;), còn các trái cây trong cùng nhóm thì ngăn cách bằng dấu phẩy (,).
Mình đã thử dùng Text to Columns nhưng nó chỉ xử lý được một lớp phân tách thôi. Nếu có nhiều lớp phân tách như vậy thì khá là mệt.
Gần đây, mình có tìm hiểu và áp dụng Power Query để xử lý triệt để vấn đề này. Cách làm của mình như sau:
- Bước 1: Load dữ liệu vào Power Query.
- Bước 2: Dùng chức năng 'Split Column' để tách theo dấu chấm phẩy (
;) trước. Chọn 'Advanced options' và tick vào 'Split to Rows'. - Bước 3: Sau khi tách, mỗi nhóm trái cây sẽ nằm trên một dòng riêng. Bây giờ, tiếp tục dùng 'Split Column' cho cột chứa các trái cây, chọn dấu phẩy (
,) làm dấu phân tách. Lần này, chúng ta có thể chọn 'Split to Columns' hoặc 'Split to Rows' tùy theo nhu cầu phân tích. - Bước 4: Cuối cùng, làm sạch các khoảng trắng thừa nếu có và load kết quả trở lại Excel.
Cách này giúp mình xử lý được các cấu trúc dữ liệu phức tạp mà trước đây rất mất thời gian. Có anh chị em nào có cách khác hiệu quả hơn hoặc có kinh nghiệm xử lý dạng dữ liệu này không, chia sẻ cho mình với ạ?
Cảm ơn mọi người đã đọc bài!