File CSV bị dồn vào một cột trong Excel? Nguyên nhân và cách sửa
Khi mở file CSV mà mọi thứ dồn hết vào cột A, nghĩa là file dùng dấu phân cách khác với dấu Excel đang chờ — thường là file dùng dấu phẩy nhưng mở trên máy cài đặt dùng dấu chấm phẩy, hoặc ngược lại. Dữ liệu không hề bị hỏng. Hãy mở file bằng công cụ tự nhận diện dấu phân cách, như Trình xem CSV, hoặc chỉ cho Excel biết cần dùng dấu phân cách nào qua chức năng nhập dữ liệu hay “Text to Columns”.
Dấu phẩy, dấu chấm phẩy và dấu phẩy thập phân
“CSV” là viết tắt của comma-separated values (giá trị phân cách bằng dấu phẩy), nhưng thực tế dấu phân cách là gì là do chương trình ghi file quyết định. Đây là cùng một dòng được viết theo hai cách:
Ngày,Khách hàng,Số tiền
2024-03-15,Müller GmbH,1250.50
Ngày;Khách hàng;Số tiền
2024-03-15;Müller GmbH;1250,50
Lý do có cách viết thứ hai nằm ở dấu thập phân. Ở phần lớn châu Âu — Đức, Pháp, Ý, Tây Ban Nha, Hà Lan, Ba Lan, Ukraina và nhiều nước khác — số thập phân được viết bằng dấu phẩy: 1250,50, giống như cách viết ở Việt Nam. Nếu dấu phẩy còn dùng để ngăn cách các cột, 1250,50 sẽ bị tách thành hai ô. Vì vậy, các chương trình bảng tính ở những khu vực này dùng dấu chấm phẩy làm dấu phân cách cột.
Không cách nào sai cả. Đó chỉ là hai quy ước khác nhau, và rắc rối bắt đầu khi file viết theo quy ước này được mở bằng chương trình chờ quy ước kia. Để hiểu thêm về chính định dạng này, xem file CSV là gì.
Vì sao Excel dồn mọi thứ vào cột A
Khi bạn bấm đúp vào file .csv, Excel không xem nội dung file để đoán dấu phân cách. Nó dùng dấu phân cách danh sách (list separator) trong cài đặt vùng (region) của hệ điều hành. Trên Windows, cài đặt này đi theo vùng bạn chọn: máy đặt vùng là một nước dùng dấu phẩy thập phân thường có dấu phân cách danh sách là dấu chấm phẩy, còn máy đặt vùng Hoa Kỳ hoặc Anh dùng dấu phẩy.
Vì vậy xung đột xảy ra theo cả hai chiều:
- Đối tác ở Mỹ gửi file xuất phân cách bằng dấu phẩy; Excel trên máy bạn, đặt vùng Đức hay Pháp, chờ dấu chấm phẩy nên để nguyên mỗi dòng trong cột A.
- Phần mềm kế toán bản Tây Ban Nha của bạn ghi dấu chấm phẩy; đồng nghiệp ở Anh mở ra và thấy
Ngày;Khách hàng;Số tiềnnằm gọn trong một ô.
Điều tương tự xảy ra với file xuất từ dịch vụ web, cửa hàng online và CRM. Nhiều nơi luôn ghi dấu phẩy bất kể bạn ở đâu, nên người dùng ở châu Âu gặp chuyện này rất thường xuyên. Một lỗi liên quan — chữ cái biến thành ký hiệu như é — là chuyện bảng mã chứ không phải dấu phân cách; xem ký tự lạ trong file CSV.
Cách 1: mở bằng công cụ tự nhận diện dấu phân cách
Nếu bạn chỉ cần đọc file — kiểm tra một đơn hàng, tra một khách hàng, xem file xuất có gì — nhanh nhất là dùng trình xem tự tìm ra dấu phân cách.
Trình xem CSV của Opener đọc file và nhận diện file được phân cách bằng dấu phẩy, chấm phẩy, tab hay dấu gạch đứng, rồi hiển thị thành bảng đúng nghĩa. Nó cũng nhận diện bảng mã (UTF-8, Windows-1251 hoặc Windows-1252) và xử lý được giá trị trong dấu ngoặc kép có chứa dấu phân cách, như "Hà Nội, Việt Nam". Không cần cấu hình gì, không cần tài khoản, và file ở lại trong trình duyệt — không bao giờ bị tải lên. Bạn có thể tìm kiếm, sắp xếp và xuất kết quả ra CSV hoặc JSON.
Cách 2: dùng chức năng nhập dữ liệu hoặc Text to Columns của Excel
Để làm việc với dữ liệu trong Excel, hãy chỉ cho Excel dấu phân cách thay vì bấm đúp vào file.
Nhập từ Text/CSV. Mở một workbook trống, vào tab “Data” và chọn “From Text/CSV”. Excel hiện bản xem trước với danh sách Delimiter (dấu phân cách); chọn Comma (dấu phẩy) hoặc Semicolon (dấu chấm phẩy) cho đến khi các cột trông đúng, rồi tải dữ liệu vào. Cũng trong bản xem trước đó, bạn có thể đặt bảng mã của file nếu chữ bị lỗi font.
Text to Columns. Nếu dữ liệu đã nằm sẵn trong cột A:
- Chọn cột A.
- Trên tab “Data”, chọn Text to Columns.
- Chọn Delimited, rồi đánh dấu dấu phân cách mà file của bạn dùng (ví dụ Semicolon hoặc Comma).
- Hoàn tất trình hướng dẫn.
Một điều cần để ý với cả hai cách: định dạng số. File có 1250.50 mở trên hệ thống dùng dấu phẩy thập phân có thể bị đọc thành chữ hoặc thành một con số sai. Bản xem trước khi nhập và bước cuối của trình hướng dẫn Text to Columns cho phép bạn đặt cách hiểu từng cột — hãy kiểm tra vài số tiền trước khi tin vào các con số tổng.
Cách 3: thêm dòng “sep=” cho Excel
Có một mẹo chỉ dành cho Excel: thêm một dòng ở ngay đầu file ghi rõ dấu phân cách.
sep=;
Ngày;Khách hàng;Số tiền
2024-03-15;Müller GmbH;1250,50
Mở file bằng trình soạn thảo văn bản thuần, thêm sep=; (hoặc sep=, với file dùng dấu phẩy) làm dòng đầu tiên, lưu lại rồi bấm đúp mở lại. Excel đọc gợi ý này, dùng đúng dấu phân cách đó và không hiển thị chính dòng ấy.
Đây là mẹo chữa cháy, không phải tiêu chuẩn. Các chương trình khác — Google Sheets, LibreOffice, cơ sở dữ liệu, script — không biết sep= và thường sẽ hiển thị nó như một dòng đầu thừa hoặc coi nó là tiêu đề. Chỉ dùng cách này cho file chỉ gửi cho người dùng Excel.
Cách 4: Google Sheets, LibreOffice hoặc cài đặt vùng
Google Sheets. Dùng File → Import và tải file CSV lên. Hộp thoại nhập có tùy chọn loại dấu phân cách, nơi bạn có thể để tự phát hiện hoặc tự chọn, kể cả một ký tự tùy chỉnh.
LibreOffice Calc. Khi bạn mở file CSV, LibreOffice hiện hộp thoại nhập văn bản với các ô đánh dấu cho dấu phẩy, chấm phẩy, tab và các dấu phân cách khác, kèm bản xem trước trực tiếp. Phần mềm này miễn phí trên Windows, macOS và Linux.
Đổi dấu phân cách danh sách của Windows. Trong phần cài đặt vùng của Control Panel cổ điển, mục cài đặt bổ sung có ô List separator. Đặt nó thành dấu phẩy sẽ giúp Excel mở thẳng file phân cách bằng dấu phẩy khi bấm đúp. Hãy cẩn thận: đây là cài đặt toàn hệ thống, nên nó cũng thay đổi cách Excel ngăn cách các đối số hàm trong công thức và cách các chương trình khác đọc, ghi file CSV. Nếu bạn chia sẻ file với đồng nghiệp cùng nước, họ sẽ bắt đầu nhận file dấu phẩy từ bạn. Với phần lớn mọi người, các cách nhập dữ liệu ở trên an toàn hơn.
Câu hỏi thường gặp
Sao cùng một file CSV mà máy đồng nghiệp mở bình thường?
Cài đặt vùng trên máy họ dùng dấu phân cách danh sách khác. Excel dùng cài đặt đó khi bạn bấm đúp vào file CSV, nên cùng một file có thể mở đúng trên máy này và dồn vào một cột trên máy khác.
Nên lưu file CSV bằng dấu phẩy hay dấu chấm phẩy?
Tùy người mở. Với chương trình khác, script và đồng nghiệp quốc tế, dấu phẩy là mặc định phổ biến. Với người dùng Excel ở các nước dùng dấu phẩy thập phân, dấu chấm phẩy mở được ngay. Nếu được, hãy hỏi người nhận.
Sao vẫn có dòng bị sai số cột?
Thường là do một giá trị chứa chính dấu phân cách, như tên công ty có dấu phẩy mà không được đặt trong dấu ngoặc kép. Trình xem và công cụ nhập tuân theo quy tắc ngoặc kép của CSV xử lý được giá trị có ngoặc kép; giá trị không có ngoặc kép thì cần sửa từ nguồn.
Trình xem CSV có mở được file phân cách bằng tab và dấu gạch đứng không?
Có. Trình xem CSV tự nhận diện dấu phẩy, chấm phẩy, tab và dấu gạch đứng, và mở được file .csv, .tsv và .txt.