Mục lục
CSV không mở đúng cách trong Excel? Hướng dẫn điều tra các vấn đề điển hình và cung cấp các giải pháp hiệu quả nhất.
Định dạng CSV thường được sử dụng để nhập/xuất dữ liệu giữa các chương trình bảng tính khác nhau. Tên CSV (các giá trị được phân tách bằng dấu phẩy) ngụ ý việc sử dụng dấu phẩy để phân tách các trường dữ liệu. Nhưng đó là trên lý thuyết. Trên thực tế, nhiều cái gọi là tệp CSV phân tách dữ liệu bằng các ký tự khác như dấu chấm phẩy hoặc tab. Một số triển khai bao gồm các trường dữ liệu trong dấu ngoặc đơn hoặc dấu ngoặc kép, trong khi những triển khai khác yêu cầu dấu thứ tự byte Unicode (BOM), chẳng hạn như UTF-8, để diễn giải Unicode chính xác. Việc thiếu tiêu chuẩn sinh ra nhiều vấn đề khác nhau với chuyển đổi CSV sang Excel.
Tệp CSV mở trong một cột trong Excel
Các triệu chứng . Khi mở tệp csv trong Excel, tất cả dữ liệu sẽ xuất hiện trong một cột.
Nguyên nhân . Để phân tách dữ liệu trong các cột, Excel sử dụng bộ tách danh sách trong cài đặt Khu vực Windows của bạn. Đây có thể là dấu phẩy (ở Bắc Mỹ và một số quốc gia khác) hoặc dấu chấm phẩy (ở các nước Châu Âu). Khi dấu phân cách được sử dụng trong một tệp .csv cụ thể khác với dấu phân cách mặc định, thì tệp đó sẽ mở trong một cột.
Giải pháp . Có một số giải pháp khả thi cho trường hợp này bao gồm macro VBA hoặc thay đổi chung trong cài đặt Windows. Chúng tôi sẽ chỉ cho bạn cách khắc phục sự cố nhanh chóng mà không cần thay đổi giá trị mặc địnhdấu tách danh sách trên máy tính của bạn, vì vậy không ứng dụng nào của bạn sẽ bị ảnh hưởng.
Thay đổi dấu phân cách trong tệp CSV
Để Excel có thể đọc CSV bằng dấu phân cách khác, bạn có thể xác định dấu phân cách trực tiếp trong tập tin đó. Để hoàn thành, hãy mở tệp bằng bất kỳ trình soạn thảo văn bản nào (Notepad sẽ hoạt động tốt) và thêm văn bản bên dưới vào dòng đầu tiên. Lưu ý, nó phải là một dòng riêng biệt trước bất kỳ dữ liệu nào khác:
- Để phân tách bằng dấu phẩy: sep=,
- Để phân tách bằng dấu chấm phẩy: sep=;
Theo cách tương tự, bạn có thể đặt bất kỳ dấu tách tùy chỉnh nào khác - chỉ cần nhập dấu phân cách đó sau dấu bằng.
Với dấu phân cách thích hợp được xác định, giờ đây bạn có thể mở theo cách thông thường, từ chính Excel hoặc từ Windows Explorer.
Chỉ định dấu phân cách khi nhập tệp CSV vào Excel
Thay vì mở tệp csv trong Excel, hãy nhập tệp đó bằng Trình hướng dẫn nhập văn bản (trong tất cả các phiên bản) hoặc Power Query (trong Excel 365 - 2016).
Trình hướng dẫn nhập văn bản (tab Dữ liệu > Từ văn bản ) cung cấp một số lựa chọn cho các dấu phân cách ở bước 2. Nói chung, bạn sẽ chọn:
- Dấu phẩy cho các tệp giá trị được phân tách bằng dấu phẩy
- Tab cho các tệp văn bản
- Dấu chấm phẩy cho các tệp giá trị được phân tách bằng dấu chấm phẩy
Nếu bạn không chắc dữ liệu của mình chứa dấu phân cách nào, hãy thử các dấu phân cách khác nhau và xem cái nào phù hợp với xem trước Dữ liệu.
Khi tạoKết nối Power Query, bạn có thể chọn dấu phân cách trong cửa sổ hộp thoại Xem trước:
Để biết hướng dẫn chi tiết từng bước, vui lòng xem các ví dụ được liên kết ở trên.
Tách ô bằng tính năng Chuyển văn bản thành Cột
Trong trường hợp dữ liệu của bạn đã được chuyển sang Excel, bạn có thể tách nó thành các cột khác nhau bằng cách sử dụng tính năng Văn bản thành Cột . Về cơ bản, nó hoạt động giống như Trình hướng dẫn nhập văn bản: bạn chọn một dấu phân cách và Xem trước dữ liệu phản ánh nhanh các thay đổi:
Để biết chi tiết đầy đủ, vui lòng xem Cách chia ô trong Excel.
Cách giữ các số 0 ở đầu trong Excel CSV
Các triệu chứng. Một số giá trị trong tệp csv của bạn chứa các số 0 ở đầu. Khi tệp được mở trong Excel, các số 0 phía trước sẽ bị mất.
Nguyên nhân . Theo mặc định, Microsoft Excel chuyển đổi các tệp csv sang định dạng Chung loại bỏ các số 0 ở đầu.
Giải pháp . Thay vì mở, hãy nhập CSV của bạn vào Excel và chọn định dạng Văn bản cho các cột có vấn đề.
Sử dụng Trình hướng dẫn Nhập Văn bản
Để bắt đầu Trình hướng dẫn Nhập Văn bản tự động, thay đổi phần mở rộng tệp từ .csv thành .txt, rồi mở tệp văn bản từ Excel. Hoặc bật tính năng Từ văn bản (Cũ) và bắt đầu nhập CSV sang Excel.
Ở bước 3 của trình hướng dẫn, hãy chọn cột chứa các giá trị có số 0 đứng đầu và thay đổi định dạng của cột thành Văn bản . Điều này sẽ nhập các giá trịdưới dạng chuỗi văn bản giữ nguyên tất cả các số 0 đứng đầu.
Sử dụng Power Query
Nếu bạn muốn nhập tệp csv vào Excel bằng cách kết nối với tệp đó, thì có hai cách để giữ các số 0 ở đầu.
Phương pháp 1: Nhập tất cả dữ liệu ở định dạng Văn bản
Trong hộp thoại xem trước, bên dưới Phát hiện loại dữ liệu , chọn Không phát hiện loại dữ liệu . Nội dung của tệp csv của bạn sẽ được tải vào Excel dưới dạng văn bản và tất cả các số 0 đứng đầu sẽ được giữ lại.
Lưu ý. Phương pháp này hoạt động tốt nếu tệp của bạn chỉ chứa dữ liệu văn bản . Nếu có các loại giá trị khác nhau thì hãy sử dụng phương pháp 2 để xác định định dạng thích hợp cho từng cột riêng lẻ.
Phương pháp 2: Đặt định dạng cho từng cột
Trong trường hợp tệp csv của bạn chứa nhiều loại dữ liệu khác nhau như văn bản, số, tiền tệ, ngày tháng và thời gian, bạn có thể chỉ rõ loại nào nên sử dụng định dạng cho từng cột cụ thể.
- Bên dưới phần xem trước dữ liệu, hãy nhấp vào Chuyển đổi dữ liệu .
- Trong Power Query Editor, hãy chọn cột mà bạn muốn giữ lại các số 0 đứng trước và nhấp vào Loại dữ liệu > Văn bản .
- Đóng & Load - thao tác này sẽ tải kết quả vào một trang tính mới trong trang hiện tạisổ làm việc.
- Đóng & Tải Tới… - thao tác này sẽ cho phép bạn quyết định nơi tải kết quả.
Mẹo. Các phương pháp này cũng có thể ngăn các thao tác khác với dữ liệu của bạn mà Excel cố gắng thực hiện tự động. Ví dụ: nếu dữ liệu đã nhập bắt đầu bằng "=", Excel sẽ cố gắng tính toán nó. Bằng cách áp dụng định dạng Văn bản , bạn cho biết rằng các giá trị là chuỗi chứ không phải công thức.
Cách khắc phục các sự cố về định dạng ngày CSV trong Excel
Các triệu chứng. Sau khi chuyển đổi CSV sang Excel, ngày được định dạng không chính xác, ngày và tháng bị hoán đổi, một số ngày bị đổi thành văn bản, và một số giá trị văn bản được định dạng tự động là ngày tháng.
Nguyên nhân . Trong tệp csv của bạn, ngày được ghi ở định dạng khác với định dạng ngày mặc định được đặt trong hệ điều hành của bạn, vì vậy Excel không thể diễn giải ngày chính xác.
Giải pháp . Tùy thuộc vào chính xác vấn đề bạn đang gặp phải, hãy thử một trong các giải pháp sau.
Ngày và tháng bị lẫn lộn
Khi định dạng ngày trong cài đặt Khu vực Windows và tệp csv khác nhau , không có cách nào để Excel xác định rằng mm/dd/yy ngày mà nó đang tìm kiếm được lưu trữ ở định dạng dd/mm/yy trong tệp cụ thể đó. Do đó, đơn vị ngày và tháng bị đảo ngược: Jan-3 trở thành Mar-1 , Jan-10 trở thành Oct-1 , v.v. Ngoài ra, các ngày sau Jan-12 làđược chuyển đổi thành chuỗi văn bản vì không tồn tại tháng thứ 13, 14, v.v..
Để nhập ngày chính xác, hãy chạy Trình hướng dẫn nhập văn bản và chọn định dạng Ngày phù hợp ở bước 3 :
Một số giá trị được chuyển đổi thành ngày tháng
Microsoft Excel được thiết kế để giúp nhập các loại giá trị khác nhau dễ dàng hơn. Do đó, nếu Excel cho rằng một giá trị nhất định đại diện cho một ngày, thì giá trị đó sẽ tự động được định dạng là một ngày. Ví dụ: chuỗi văn bản apr23 trông rất giống Ngày 23 tháng 4 và 11/3 giống với Ngày 3 tháng 11 , vì vậy cả hai giá trị đều được chuyển đổi thành ngày tháng.
Để ngăn Excel thay đổi giá trị văn bản thành ngày tháng, hãy sử dụng phương pháp đã quen thuộc: chuyển đổi CSV sang Excel bằng cách nhập nó. Ở bước 3 của Trình hướng dẫn nhập văn bản , hãy chọn cột có vấn đề và thay đổi định dạng của cột thành Văn bản .
Ngày được định dạng không chính xác
Khi tệp csv được mở trong Excel, ngày thường được hiển thị ở định dạng mặc định. Ví dụ: trong tệp gốc của bạn, bạn có thể có 7-May-21 hoặc 05/07/21 , trong khi trong Excel, nó xuất hiện dưới dạng 5/7/2021 .
Để hiển thị ngày ở định dạng mong muốn, hãy sử dụng tính năng Định dạng ô :
- Chọn cột ngày.
- Nhấn Ctrl + 1 để mở hộp thoại Định dạng ô .
- Trên tab Số , chọn Ngày trong Danh mục .
- Trong Loại ,chọn định dạng mong muốn.
- Nhấp vào OK.
Nếu không có định dạng đặt trước nào phù hợp với bạn thì bạn có thể tạo của riêng bạn như được giải thích trong Cách tạo định dạng ngày tùy chỉnh trong Excel.
Ngăn Excel chuyển đổi số thành ký hiệu khoa học
Triệu chứng. Sau khi chuyển đổi CSV sang Excel, rất lâu các số được định dạng dưới dạng ký hiệu khoa học, ví dụ: 1234578900 xuất hiện dưới dạng 1.23E+09.
Nguyên nhân . Trong Microsoft Excel, các số được giới hạn ở 15 chữ số chính xác. Nếu các số trong tệp csv của bạn vượt quá giới hạn đó, thì Excel sẽ tự động chuyển đổi chúng thành ký hiệu khoa học như một cách để phù hợp với giới hạn đó. Nếu một số chứa nhiều hơn 15 chữ số có nghĩa, thì tất cả các chữ số "phụ" ở cuối sẽ được chuyển thành số không.
Giải pháp . Nhập các số dài dưới dạng văn bản hoặc thay đổi định dạng Số trực tiếp trong Excel.
Nhập các số dài dưới dạng văn bản
Để chuyển chính xác các số lớn từ CSV sang Excel, hãy chạy Trình hướng dẫn nhập văn bản và đặt định dạng của (các) cột mục tiêu thành Văn bản .
Đây là giải pháp thực sự duy nhất để nhập chính xác số strings mà không làm mất dữ liệu, tức là không thay thế chữ số thứ 16 và các chữ số tiếp theo bằng 0 hoặc xóa các số 0 đứng đầu. Phương pháp này hoạt động hiệu quả đối với các mục nhập như id sản phẩm, số tài khoản, mã vạch, v.v.
Tuy nhiên, nếu giá trị của bạn là số, không phải chuỗi, thì đó không phải là phương pháp tốt nhất vìbạn sẽ không thể thực hiện bất kỳ phép toán nào trên các giá trị văn bản thu được.
Phương pháp này cũng sẽ giúp bạn ngăn định dạng dữ liệu tự động không mong muốn khác khi chuyển đổi tệp CSV.
Thay đổi định dạng Số trong Excel
Nếu dữ liệu của bạn đã có trong Excel, bạn có thể thay đổi định dạng từ Chung thành Văn bản hoặc Số như minh họa bên dưới:
Lưu ý. Phương pháp này sẽ không khôi phục các số không hoặc chữ số đứng trước đã bị xóa sau vị trí thứ 15 đã được thay thế bằng số không.
Để biết thêm thông tin, vui lòng xem Cách định dạng ô trong Excel.
Làm cho cột rộng hơn
Trong trường hợp đơn giản nhất, khi một số chứa ít hơn 15 chữ số, chỉ cần tạo cột rộng hơn một chút để các số được hiển thị bình thường.
Để biết thêm chi tiết, vui lòng xem Cách thay đổi kích thước và tự động khớp cột trong Excel.
Đó là cách khắc phục các sự cố phổ biến nhất có thể xảy ra với chuyển đổi CSV sang Excel. Cảm ơn bạn đã đọc và hẹn gặp lại vào tuần sau!