Jan sử dụng một chương trình để tạo tệp CSV. Sau đó, tệp này có thể được mở trong Excel để phân tích thêm. Khi Jan bấm đúp vào tệp CSV trong Windows, Excel sẽ khởi động và sau đó tải tệp. Vấn đề là tệp, khi được mở, không được phân tích cú pháp bởi Excel. Thay vì các giá trị được phân tách bằng dấu phẩy nằm trong các cột khác nhau, mọi bản ghi sẽ xuất hiện trong một cột duy nhất.

Lý do cho hành vi này có lẽ khá đơn giản và liên quan đến định dạng mà dữ liệu được lưu trữ trong tệp CSV bởi chương trình không phải Excel. Để hiểu điều đó, điều quan trọng là phải hiểu cách Excel mở tệp CSV.

Khi bạn mở tệp CSV trong Excel (bằng cách nhấp đúp trong Windows hoặc bằng cách sử dụng Tệp | Mở trong Excel), chương trình sẽ coi bất kỳ dấu phẩy nào trong tệp là dấu phân cách. Điều này thật ý nghĩa; xét cho cùng, tệp phải chứa các giá trị được phân tách bằng dấu phẩy (CSV). Bạn không thể ghi đè bộ lọc tự động này khi mở tệp.

Vì vậy, làm thế nào để Excel xử lý dữ liệu đến? Hãy xem xét một chút, nếu tệp CSV chứa bốn bản ghi sau:

a,b,c,d,e "a,b,c,d",e a,"b,c",d,e "a,b,c,d,e"

Theo như Excel có liên quan, bản ghi đầu tiên có năm trường, được phân tách bằng dấu phẩy. Bản ghi thứ hai chỉ có hai trường, “a, b, c, d”

và “e.” Việc bao gồm các dấu ngoặc kép xung quanh “a, b, c, d” khiến Excel coi chuỗi như một đơn vị rời rạc. Nói cách khác, Excel bỏ qua bất kỳ dấu phẩy nào có thể xuất hiện giữa các dấu ngoặc kép.

Với tác dụng của dấu ngoặc kép, bạn có thể tìm ra cách Excel diễn giải các bản ghi thứ ba và thứ tư. Trong trường hợp này, bản ghi thứ ba chỉ có bốn trường và bản ghi thứ tư được hiểu là chỉ có một trường duy nhất.

Điều này liên quan gì đến tệp CSV có vẻ như đang tải không chính xác? Rất có thể chương trình tạo tệp CSV đang đặt một cặp dấu ngoặc kép xung quanh mỗi bản ghi. Điều này sẽ khiến mọi thứ trong bản ghi được Excel coi là một trường duy nhất, có nghĩa là nó sẽ kết thúc trong một cột khi tệp CSV được tải.

Có một số cách để xác minh điều này. Đầu tiên là chỉ cần mở tệp CSV bằng Notepad và xem từng bản ghi. (Nhấp chuột phải vào tệp CSV trong Windows, chọn Open With | Choose Program, sau đó chọn Notepad.)

Một cách khác là đổi tên tệp CSV để phần mở rộng của nó không phải là .csv mà thay vào đó là .txt. Khi bạn chọn mở tệp này trong Excel, Trình hướng dẫn Nhập Văn bản sẽ được khởi động. Chọn Dấu phân cách, bấm Tiếp theo, sau đó bạn có thể thấy dấu phân cách nào được chọn. Chú ý đến Định nghĩa Văn bản; nếu bạn thay đổi nó, bạn có thể thấy ngay ở cuối hộp thoại cách Excel diễn giải các bản ghi của tệp.

Nếu bạn thấy rằng có thêm dấu ngoặc kép xung quanh mỗi bản ghi trong tệp CSV, có ba điều bạn có thể làm. Đầu tiên là thay đổi chương trình tạo tệp CSV để nó không thêm dấu ngoặc kép — sau đó bạn sẽ có thể nhập mà không gặp vấn đề gì. Thứ hai là tiếp tục và tải tệp CSV vào Excel, sao cho mỗi bản ghi nằm trong cột A. Lưu ý rằng các dấu ngoặc kép đã biến mất, bị loại bỏ bởi quá trình nhập. Điều này có nghĩa là bây giờ bạn có thể sử dụng trình hướng dẫn Văn bản thành Cột để tách dữ liệu trong cột A thành các cột riêng lẻ.

Cuối cùng, điều thứ ba bạn có thể làm là tạo một macro sẽ mở tệp CSV và phân tích cú pháp nó cho bạn. Điều này đặc biệt hữu ích nếu bạn sẽ mở, theo thời gian, nhiều tệp CSV có cùng định dạng chính xác. Macro của bạn có thể phức tạp như mong muốn, thậm chí định dạng cột và xử lý dữ liệu khi nó được nhập. Các cách tạo macro như thế này được tìm thấy trong các vấn đề khác của ExcelTips.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3002) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: