Excel import csv

Pliki csv, to pliki, w których bardzo często eksportuje się dane z różnych systemów. Potem takie dane (z tych plików) importuje się m.in. do Excela. Poniżej opisuję jak radzić sobie z trudnościami, które mogą się pojawić podczas przenoszenia danych z plików csv do Excela.


Czym jest plik CSV

CSV to format pliku. Tak jak pliki Excela mają rozszerzenie „xlsx”, pliki Worda „docx”, tak istnieją też pliki o rozszerzeniu „csv”. Zawierają one „suche” dane, czyli nie ma w nich formuł, wykresów, kolorów – tylko zwykłe dane, czyli tekst/liczby.

Budowa pliku CSV

Dane w tym pliku są tak umieszczone, żeby łatwo było można je odczytać w innym programie (ja skupiam się w tym artykule na odczytywaniu tych danych w Excelu) w formie tabeli. Czyli Excel będzie umiał te dane podzielić odpowiednio na wiersze i kolumny. Skąd Excel wie jak je podzielić? Przyjrzyj się rysunkowi poniżej – przedstawia on plik csv otwarty w notatniku (notatnik najlepiej pokazuje jak wyglądają te „surowe” dane).

Rysunek 1. Plik csv otwarty w notatniku.

Widać na rysunku kolejne linie z danymi – każda linia będzie umieszcza w Excelu w osobnym wierszy. Myślę, że jest to zrozumiałe. Skąd jednak Excel wie jak podzielić te długie linie na kolumny? Odpowiedź brzmi:

W PLIKU CSV UŻYWA SIĘ ZNAKU, KTÓRY INFORMUJE, GDZIE MA NASTĄPIĆ PODZIAŁ NA KOLUMNY. ZAZWYCZAJ TYM ZNAKIEM JEST PRZECINEK.

Dodatkowo, plik CSV jest tak stworzony, aby odróżniać przecinki dzielące dane na kolumny, od zwykłych przecinków, które mogą przecież stanowić cześć danych. Stąd też wzięła się nazwa pliku CSV (Comma Separated Values – czyli wartości oddzielane przecinkami).

Nie zawsze jednak tym znakiem jest przecinek (tylko inny znak), albo nie zawsze Excel szuka w tych danych przecinka (tylko innego znaku) i to jest częstym powodem problemów – opisuję je w kolejnych sekcjach poniżej.


Otwieranie pliku CSV w Excelu

Gdy masz plik csv, to możesz go po prostu kliknąć dwukrotnie i otworzy Ci się w Excelu, tak jak zwykłe pliki Excela (no chyba, że masz ustawiony inny domyślny program do otwierania csv). Możesz więc łatwo nie zauważyć, że jest to plik CSV i pomyśleć, że jest to plik Excela. Nawet jeśli po otwarciu wszystko wygląda dobrze, to warto wiedzieć, że jest to plik csv, a nie Excela (poniżej będę tłumaczył dlaczego).

Ikona pliku csv nieco różni się do ikony zwykłego pliku Excela – wygląda tak, jak na rysunku poniżej. Zwróć uwagę na literę „a” oraz przecinek – jest to charakterystyczne dla tej ikony.

Rysunek 2. Ikona pliku csv.

Otwarcie pliku CSV z sukcesem

Jeśli w Twoim pliku csv dane kolejnych kolumn rozdzielane są przecinkiem, a Twój Excel także szuka w tym pliku przecinków, to dane zostaną prawidłowo podzielone na kolumny.

Rysunek 3. Widok pliku csv otwartego w Excelu, gdy dane zostały prawidłowo podzielone.

Musisz jednak wiedzieć, że przecinek jest domyślnym znakiem dla plików csv w wersji angielskiej. Czyli jeszcze twój plik csv został wygenerowany przez jakiś system, działający w wersji angielskiej, to w tym csv prawdopodobnie są przecinki. Jeśli Twój Excel jest w wersji angielskiej, to szuka w csv też przecinków – i wszystko wtedy działa dobrze.

Wyobraź sobie, że masz Excela w wersji polskiej – on wówczas będzie oczekiwał w pliku csv średników zamiast przecinków. Gdy w twoim csv są przecinki to widać to ewidentną niezgodność. Można sobie z nią poradzić stosując importowanie csv do Excela, które w kolejnej sekcji.

Otwarcie pliku CSV z błędem

Jeśli między plikiem csv, a Twoim Excelem jest niezgodność znaków, o której pisałem powyżej, to najprawdopodobniej wszystkie Twoje dane zostaną umieszczone w jednej kolumnie (nie zostaną podzielone). Zobacz obrazek poniżej – dane są tylko w kolumnie A (choć optycznie rozlewają się na kolejne kolumny, do taka linijka danych jest bardzo duża).

Rysunek 4. Plik csv otwarty w Excelu, gdy dane nie zostały podzielone.

Na powyższym rysunku widać przecinki między kolejnymi informacjami – można więc wywnioskować, że w pliku csv były przecinki, ale Excel oczekiwał średników (bo Excel jest w polskiej wersji). Nie mogąc znaleźć średników, Excel nie podzielił danych na kolumny.

Czytaj poniżej jak poradzić sobie z tym problemem.


Importowanie CSV do Excela

Jeśli po otwarciu pliku CSV w Excelu dane nie zostały prawidłowo podzielone na kolumny, możesz ten plik zaimportować do Excela.

Otwórz nowy plik Excela (albo taki, w którym chcesz umieścić dane z pliku csv). Przejdź w górnym menu Excela do zakładki Dane i kliknij przycisk Z pliku tekstowego/CSV.

Rysunek 5. Importowanie pliku CSV z górnego menu Excela.

Otworzy się wówczas okno, w którym należy odszukać swój plik CSV. Następnie, pojawi się okno, w którym możesz wskazać, jaki znak w pliku CSV rozdziela kolumny danych. Zmieniając znak w polu Ogranicznik, będziesz widzieć na podglądzie jak zachowują się dane – czy są podzielone, czy są skumulowane w jednej kolumnie.

Rysunek 6. Okno, w którym wskazujesz Ogranicznik, czyli znak oddzielający kolumny.

Naciśnij następnie przycisk Załaduj i gotowe – dane zostaną umieszczone w Excelu.


Podział kolumny z pliku CSV

Istnieje jeszcze inny sposób, na prawidłowy import danych z csv do Excela.

Wyobraźmy sobie, że otwierasz plik CSV w Excelu, ale rezultat jest błędny – wszystkie dane są w jednej kolumnie. Możesz wtedy:

    • Zaznaczyć taką kolumnę
    • Przejdź do zakładki Dane i wybrać narzędzie Tekst jako kolumny
    • W oknie zaznacz opcję Rozdzielany i naciśnij Dalej
    • W drugim oknie wskaż znak, który w pliku CSV użyty jest do rozdzielania kolumn. Jeśli nie ma na liście tego znaku, to wybierz Inny i go wpisz. Na podglądzie poniżej zobaczysz, czy dane są właściwie podzielone. Naciśnij Zakończ.
    • Dane zostały właściwie podzielone na kolumny.

 

Rysunek 7. Narzędzie Tekst jako kolumny w zakładce Dane.

Rysunek 8. Pierwsze okno. Rysunek 9. Drugie okno – czyli wybranie znaku ograniczającego kolumny.


Najpopularniejsze trudności z importem pliku CSV do Excela

Dane wyświetlane są tylko w jednej kolumnie

Jest to najczęstszy i kluczowy problem, którego rozwiązanie opisałem już w poprzednich sekcjach.

Daty zaimportowane z CSV są w złym formacie

Dane, które masz w CSV, zostały tam umieszczone przez jakiś inny system, który, po pierwsze nie wie gdzie będziesz ich używać (w Excelu), ale przede wszystkim na jakiej wersji językowej Excela pracujesz i jakie masz ustawienia regionalne (zaraz wytłumaczę czym one są).

W pliku csv możesz mieć np. datę zapisaną „po amerykańsku”, a Excela masz polskiego – wówczas Twój Excel nie potraktuje tych wartości jako daty, tylko jako teksty. Nawet gdy masz Excela w tym samym języku, to możesz mieć inne ustawienia regionalne niż te, użyte w CSV.

Ustawienia regionalne pozwalają zmienić m.in. domyślny sposób zapisu daty na Twoim komputerze, więc dwie osoby mające tę samą wersję językową, wciąż mogą mieć inny sposób zapisu daty. Ustawienia regionalne zmienia się w Panelu sterowania Windowsa, ale nie będę tego tematu tutaj rozwijał, bo zmiany w Panelu sterowania będą wpływać na cały system, a nie tylko na Excela. Pokaże Ci jak osiągnąć odpowiedni efekt bez grzebania w Panelu sterowania.

Postępuj tak jak w sekcji o tytule „Podział kolumny z pliku CSV”. Czyli zaznacz kolumnę z danymi, przejdź do narzędzia „Tekst jako kolumny”, wybierz odpowiedni ogranicznik (aby Excel umiał podzielić dane na kolumny) i teraz zamiast klikać Zakończ, kliknij Dalej.

Rysunek 10. W oknie nr 2 naciśnij Dalej.

Pojawi się trzecie okno, które służy głównie do ustawienia prawidłowych formatów – tego właśnie potrzebujemy! W tym oknie, zaznacz najpierw kolumnę, w której chcesz zmienić formaty daty – zrób to na podglądzie, klikając ją. Zostanie ona zaznaczona na czarno. Teraz w lewym, górnym rogu okna zaznacz Data. Dzięki temu, Excel wie, że te kolumna zawiera daty. Musisz jeszcze sprecyzować, jak te daty zostały zapisane (kolejność numerów dnia, miesiąca i roku) – bo wyobraź sobie, że masz datę 04.05.2021 -> to jest to czwarty maja, czy piąty kwietnia? Excel tego nie odgadnie, więc ty musisz mu to wskazać, wybierać odpowiednią kombinację liter DMR z listy rozwijanej. Pamiętaj, żeby nie wskazywać kolejności, którą chcesz ostatecznie otrzymać, ale wskaż kolejność, która jest obecnie zastosowana w pliku csv (zazwyczaj błędna).

Rysunek 11. Ustawienie formatu daty dla wybranej kolumny.

Na końcu naciśnij Zakończ.

Liczby zaimportowane z CSV są w złym formacie

Podobnie może być z liczbami. Po polsku część ułamkową oddziela się przecinkiem (np. 5,62), a po angielsku kropką. Po polsku separatorem tysięcznym jest spacja, a po angielsku przecinek. Inne wersje językowe oczywiście też mają swoje sposoby zapisu liczby (przecież możesz pracować na danych w innym języku niż polski, czy angielski, a także możesz mieć Excela w innym języku).

Postępuj podobnie, jak w przypadku zmiany formatu daty, czyli przejdź do narzędzia Tekst jako kolumny i w nim do trzeciego okna. Tym razem nie musisz zaznaczać kolumny na podglądzie, tylko naciśnij przycisk Zaawansowane.

Rysunek 12. Trzecie okno narzędzia Tekst jako kolumny i przycisk Zaawansowane.

W oknie, które się otworzy, wskaż jakim znakiem oddzielane są części ułamkowe w liczbach (Separator dziesiętny) oraz jakim znakiem oddzielane są cyfry w dużych liczbach (Separator tysięcy). Pamiętaj, aby wskazać nie te znaki, których chcesz używać, tylko te znaki, które obecnie są użyte w danych z pliku CSV.

Rysunek 13. Zmiana sposobu zapisu liczb, po kliknięciu przycisku Zaawansowane.

Excel usuwa mi zera na początku numerów

Czasami w naszych danych znajdują się numery, które rozpoczynają się od zer, np. numer produktu „00023323”. Oczywiście chcemy, aby te zera, po przeniesieniu danych z CSV do Excela, były dalej widoczne. Jednak zazwyczaj Excel te zera na początku numeru usuwa. Dlaczego? Bo jeśli Excel widzi wartość, która wygląda jak liczba, to traktuję ją jak liczbę – a tak się składa, że Excel nie dopuszcza liczb zaczynających się od zera. Oczywiście ma to sens, ale nie wtedy, gdy liczba jest dla nas jakimś numerem. Możesz to przetestować wpisując ręcznie do jakiejś komórki liczbę zaczynającą się od zera – Excela wszystkie zera na początku usunie.

W takim razie, nakażemy Excelowi traktować te numery jak teksty – nie będzie wtedy nic sam usuwał. Postępuj podobnie jak w przypadku zmiany formaty dat, czy liczb – przejdź do Tekst jako kolumny, do trzeciego okna. Zaznacz na podglądzie kolumnę (lub wiele kolumn), która zawiera te numery. Wybierz w lewym, górnym rogu ekranu format Tekst. Naciśnij Zakończ. Gotowe. Pamiętaj, że te numery będą teraz traktowane jak teksty, a nie jak liczby.

Rysunek 14. Zmiana formatu liczb na tekstowy.

Zmiany w pliku CSV się nie zapisały

Jeśli otworzysz plik CSV bezpośrednio w Excelu (klikając w plik dwukrotnie), to pamiętaj, że wciąż jest to plik CSV (mimo, że otworzył się w Excelu). No i co z tego? Plik CSV potrafi zapisać w sobie tylko proste dane, jeśli więc mając go otwartego w Excelu, wstawisz w nim formuły, tabele przestawne, wykresy, formatowanie warunkowe, itp. i zapiszesz ten plik pod tą samą nazwą (czyli wciąż będzie to plik csv), to te wszystkie Excelowe narzędzia, które wymieniłem, nie zostaną zapisane.

Excel ostrzega Cię przed ich utratą, ale często takie komunikaty ignorujemy. Wystarczy, więc zapisać ten plik jako plik Excela. Czyli ostatecznie będziesz mieć wciąż plik csv oraz nowy plik Excela. Żeby to zrobić, użyj opcji Zapisz jako (skrót F12) i wybierz z listy typów po prostu jako Skoroszyt programu Excel.

Rysunek 15. Zapisanie CSV jako pliku Excela.