Chodzi o dwa różne zjawiska. Długa liczba widoczna jako 4.02177E+19 może być tylko kwestią formatu wyświetlania, który zmieni szersza kolumna lub format Liczbowy. Ale przy otwieraniu pliku CSV Excel przekształca też samą wartość: komórka liczbowa przechowuje tylko 15 cyfr znaczących, a zera wiodące w ogóle nie należą do liczby. Formatowanie nie przywróci cyfr, które już zostały zastąpione. Żeby zachować wartości, trzeba zamienić je w komórki tekstowe, zanim Excel je przekonwertuje: zaimportować te kolumny jako Tekst albo otworzyć plik XLSX, w którym komórki już są tekstowe – taki domyślnie zapisuje konwerter CSV do Excela.
Co Excel robi z plikiem pełnym identyfikatorów i kodów
Plik CSV to zwykły tekst bez typów komórek. Gdy klikniesz go dwukrotnie, Excel zgaduje przy każdej wartości, czy to liczba, data, czy tekst. Poniższy fikcyjny plik zawiera dokładnie takie wartości, przy których to zgadywanie zawodzi.
| Wartość | W pliku CSV | Excel otwiera CSV | Komórka w pliku XLSX z ViewCSV |
|---|---|---|---|
| Zera wiodące | 00412 | 412 | 00412 |
| 20-cyfrowy numer zamówienia | 40217730091152400016 | 4.02177E+19 | 40217730091152400016 |
| Kolejny numer zamówienia | 40217730091152400017 | 4.02177E+19 | 40217730091152400017 |
| Numer telefonu z plusem | +15550100234 | 15550100234 | +15550100234 |
| Kod części wyglądający jak data | 3-12 | 12-Mar | 3-12 |
| Kod partii z literą E | 12E3 | 1.20E+04 | 12E3 |
| Uwaga wyglądająca jak formuła | =SUM(F2:F3) | 17 | =SUM(F2:F3) |
1,20E+04, kod 3-12 może odczytać jako 3 grudnia, a plik rozdzielany przecinkami może w ogóle trafić do jednej kolumny. Inne wersje programu też mogą dawać nieco inne wyniki.Oba numery zamówień wyświetlają się jako 4.02177E+19, ale to tylko sposób prezentacji. Pod spodem Excel zachował jedynie ich pierwszych 15 cyfr, więc obie komórki zawierają teraz tę samą wartość: 40217730091152400000. Po poszerzeniu kolumny zobaczysz te zera, a nie oryginalne cyfry, a wyszukiwanie czy kontrola duplikatów potraktują dwa zamówienia jak jedno.
Te wiersze to przykładowy plik konwertera. Pobierz CSV, otwórz go we własnym Excelu i porównaj wyniki.
Notacja naukowa to tylko wygląd, utracone cyfry to realna strata
4.02177E+19 to jedynie sposób, w jaki zbyt wąska kolumna w formacie Ogólne pokazuje dużą liczbę; szersza kolumna lub format Liczbowy pokażą więcej. Prawdziwa strata następuje wcześniej: Excel przechowuje liczby z dokładnością do 15 cyfr znaczących, więc podczas konwersji każda cyfra od 16. w górę zamienia się w zero. 16-cyfrowy numer karty traci już ostatnią cyfrę, a 26-cyfrowy numer rachunku bankowego (NRB) – aż jedenaście ostatnich.
- Zera wiodące znikają, bo
00412i412to ta sama liczba. Format niestandardowy, np.00000, znowu pokaże pięć cyfr, ale komórka nadal zawiera 412, a kodów o różnej długości w ten sposób nie odtworzysz. - Długie identyfikatory tracą wszystkie cyfry po 15. Żaden format, formuła ani narzędzie nie odzyska ich z pliku zapisanego już po tej zmianie.
- Kody takie jak
3-12czy12E3stają się datą albo liczbą w notacji naukowej, a oryginalnego tekstu nie ma już w komórce. - Wartości zaczynające się od
=są traktowane jak formuły i zastępowane ich wynikiem.
Zamiast tego utwórz plik XLSX z komórkami tekstowymi
W przeciwieństwie do CSV skoroszyt .xlsx zapisuje typ każdej komórki, a komórkę tekstową Excel pokazuje dokładnie tak, jak ją zapisano. Konwerter CSV do Excela domyślnie zapisuje każdą wartość jako komórkę tekstową. Działa w przeglądarce i nie wysyła pliku na serwer.
- Otwórz plik CSV w konwerterze CSV do Excela albo wybierz Wypróbuj przykład, aby wczytać pokazane wyżej wiersze.
- Sprawdź tabelę w sekcji Dane wejściowe: identyfikatory, zera i kody wyglądają dokładnie tak jak w pliku.
- Pozostaw w polu Typy wartości opcję Zachowaj wszystkie wartości jako tekst.
- Wybierz Pobierz XLSX i otwórz skoroszyt w Excelu.
W skoroszycie 00412, wszystkie 20 cyfr obu numerów zamówień, +15550100234, 3-12, 12E3 i =SUM(F2:F3) są komórkami tekstowymi. Wartość przypominająca formułę zostaje zwykłym tekstem, więc przy otwieraniu pliku nic się nie przelicza. Excel może oznaczyć tekst wyglądający jak liczba małym zielonym trójkątem (Liczba przechowywana jako tekst); sama wartość się nie zmienia.
quantity lub unit_price, przeczytaj następną sekcję, zamiast konwertować całe kolumny w Excelu – omyłkowo zaznaczona kolumna z identyfikatorami też zostałaby przekonwertowana.Gdy potrzebujesz także prawdziwych liczb
Rozpoznawaj liczby i true/false zmienia kolumnę na liczbową tylko wtedy, gdy każda jej wartość jest zwykłą liczbą, którą Excel zapisze bez zmian. W przykładzie liczbami stają się quantity i unit_price, natomiast customer_id (zera wiodące), order_ref (ponad 15 cyfr), part_code i note pozostają tekstem.
Rozpoznawanie ocenia zapis wartości, a nie ich znaczenie, i decyduje dla całej kolumny. Kolumna złożona wyłącznie z wartości typu +15550100234 wygląda jak liczby całkowite ze znakiem, a złożona z wartości typu 12E3 – jak notacja naukowa, więc w przykładzie liczbami stałyby się też phone i lot_code. W takich plikach zostaw ustawienie domyślne i przekonwertuj w Excelu tylko komórki z ilościami: zaznacz je i wybierz Konwertuj na liczbę z ikony ostrzeżenia.
Jeśli musisz zacząć od pliku CSV w Excelu
Jeśli przekonwertowany skoroszyt nie wchodzi w grę, nie klikaj dwukrotnie pliku CSV, tylko go zaimportuj i ustaw ryzykowne kolumny jako Tekst, zanim cokolwiek zostanie wczytane. W aktualnym Excelu z Microsoft 365 oznacza to Dane > Z pliku tekstowego/CSV > Przekształć dane, usunięcie automatycznego kroku Zmieniono typ, ustawienie kolumn z identyfikatorami jako Tekst i załadowanie danych. Poradnik jak zaimportować plik CSV do Excela opisuje tę metodę oraz starszy Kreator importu tekstu.
Nowsze kompilacje Excela z Microsoft 365 i Excela 2024 mają w opcjach danych także ustawienia automatycznej konwersji danych, które mogą wyłączyć usuwanie zer wiodących, skracanie długich liczb, notację E i zamianę tekstu na daty. To, co jest dostępne i jak się nazywa, zależy od wersji i platformy, a ustawienia zmieniają tylko Twojego Excela, nie Excela współpracownika.
Co nie chroni wartości
- Cudzysłów wokół wartości (
"00412") mówi czytnikowi CSV jedynie, gdzie wartość się zaczyna i kończy. Liczby w cudzysłowie Excel konwertuje tak samo. - Znacznik kolejności bajtów UTF-8 (BOM) pomaga Excelowi poprawnie odczytać polskie znaki i inne alfabety. O typach komórek nic nie mówi.
- Formatowanie kolumny jako Tekst po otwarciu przychodzi za późno, bo konwersja już się odbyła.
- Opakowanie w formułę, np.
="00412", działa tylko tam, gdzie arkusz oblicza formuły. Inne czytniki CSV, bazy danych i skrypty widzą dosłowny tekst="00412", więc dane w pliku przestają być identyfikatorem. - Apostrof na początku (
'00412) nie jest formułą: wpisany w Excelu oznacza wpis jako tekst i nie jest wyświetlany. W pliku CSV to jednak zwykły znak, a inne programy dostaną'00412jako wartość. - Prawdziwa komórka tekstowa w XLSX zawiera czystą wartość
00412bez dodatkowych znaków. Właśnie taką zapisuje konwerter, więc ViewCSV nie dodaje ani formuł, ani apostrofów.
Ograniczenia
Konwerter obsługuje pliki do 25 MB, 100 000 wierszy, 250 kolumn i 2 milionów komórek, z jednym arkuszem na skoroszyt. Pliku już zapisanego z zaokrąglonymi identyfikatorami lub obciętymi zerami nie naprawi żadna konwersja; wyeksportuj go ponownie ze źródła. Testy ViewCSV sprawdzają typy komórek w wygenerowanym pliku XLSX niezależnym czytnikiem; sposób, w jaki konkretna wersja Excela formatuje je na ekranie, może się różnić.
Źródła
Dokumentacja Microsoft streszczona własnymi słowami. Nazwy poleceń w Twojej wersji Excela mogą się różnić.