Jak poprawnie importować CSV do Excela: separator, kodowanie i polskie znaki

0
36
Rate this post

Nawigacja:

Skąd biorą się problemy przy imporcie CSV do Excela

CSV – prosty plik tekstowy, który potrafi namieszać

CSV wygląda niewinnie: to tylko plik tekstowy, który można otworzyć w Notatniku. Każdy wiersz to jeden rekord (np. klient, transakcja, pozycja faktury), a wartości w kolumnach rozdzielone są separatorem, zwykle przecinkiem lub średnikiem. Brzmi prosto – dopóki nie spróbuje się takiego pliku otworzyć w Excelu i użyć go w pracy.

Excel przy imporcie nie pyta najpierw o wszystkie szczegóły, tylko sam „zgaduje”, jaki jest separator w pliku CSV, jakie jest kodowanie znaków i jak traktować poszczególne kolumny (czy to liczby, tekst, daty, waluty). Jeżeli zgadnie dobrze – wszystko działa. Jeżeli zgadnie źle – zaczyna się bałagan: połamane polskie znaki, kolumny przesunięte, liczby zmienione w daty.

Do tego dochodzi fakt, że CSV nie ma jednego spójnego standardu narzuconego przez wszystkie programy. Różne systemy generują różne warianty CSV, nawet jeśli tak samo nazywają plik. Dwa raporty „raport.csv” mogą zachowywać się w Excelu kompletnie inaczej, zależnie od tego, jak producent oprogramowania rozumie standard CSV.

Źródła plików CSV i ich „charaktery”

Większość problemów zaczyna się już na etapie źródła danych. CSV może pochodzić z:

  • systemu ERP, programu księgowego lub magazynowego,
  • aplikacji webowej (CRM, system sprzedaży online, narzędzia analitycznego),
  • systemu bankowego (wyciągi, listy transakcji),
  • systemów HR, kadrowo–płacowych,
  • różnych integracji i API, które eksportują dane do CSV „po drodze”.

Każde z tych źródeł może używać innego separatora (przecinek, średnik, tabulator), innego kodowania polskich znaków (UTF-8, Windows-1250) i innego formatu dat czy liczb. Jeśli te ustawienia nie są spójne z Twoją konfiguracją Excela i systemu Windows, Excel zinterpretuje dane po swojemu, często w nieoczywisty sposób.

Dobrym nawykiem jest traktowanie każdego nowego CSV jak nieznanego gościa: najpierw go „przeskanować” (podejrzeć separator, kodowanie, użyte cudzysłowy), dopiero potem decydować, jak go importować do Excela.

Typowe objawy błędnego importu CSV

Jeśli coś poszło nie tak przy imporcie CSV do Excela, zwykle widać to od razu. Najczęstsze objawy:

  • Rozjechane kolumny – część danych ląduje w jednej kolumnie, inne w kolejnych, nagłówki nie pasują do zawartości.
  • Polskie znaki zastąpione „krzaczkami” – np. „Łódź” staje się „ŁĂłdĹş” lub „Lódz”, a „Świętochłowice” zamieniają się w ciąg niezrozumiałych znaków.
  • Znaki zapytania lub prostokąciki w miejscu polskich liter.
  • Liczby jako tekst – są wyrównane do lewej, Excel nie sumuje ich poprawnie, pojawiają się zielone trójkąciki z ostrzeżeniem.
  • Daty w dziwnym formacie – część dat wygląda jak tekst, część jak liczby, część zamieniła się w zupełnie inne wartości.
  • Kody pocztowe i numery dokumentów bez zer na początku – np. „01-234” staje się „1234” lub dziwną datą.

Te symptomy zwykle wynikają z jednego z trzech problemów: separator CSV nie zgadza się z oczekiwaniami Excela, kodowanie pliku nie pasuje do tego, co ustawił Excel, albo Excel automatycznie przekształcił typy danych w trakcie importu.

Czy to wina Excela? I czy dane są uszkodzone?

Bardzo często reakcja po nieudanym imporcie brzmi: „Ześwirował mi Excel” albo „Uszkodziłem dane, wszystko przepadło”. To zrozumiałe – kiedy znikają polskie znaki lub PESEL zmienia się w dziwną liczbę naukową, łatwo o panikę.

Dobra wiadomość jest taka, że w zdecydowanej większości przypadków pierwotny plik CSV jest w porządku. To tylko Excel źle go zinterpretował. Sam plik pozostaje niezmieniony, dopóki go nie zapiszesz. Oznacza to, że można spokojnie zamknąć Excela bez zapisywania, a następnie wczytać plik ponownie, tym razem świadomie, używając odpowiednich opcji importu.

Zdarza się oczywiście, że plik CSV jest źle wygenerowany po stronie systemu (np. brakujący separator na końcu linii, niezamknięty cudzysłów). Takie sytuacje są jednak rzadsze niż problemy spowodowane automatyczną interpretacją Excela. Dlatego pierwszym krokiem po wpadce nie jest przepisywanie danych, tylko ponowne otworzenie CSV z innymi ustawieniami lub innym narzędziem importu.

Kolorowe kontenery transportowe ustawione w stosy w porcie w Hamburgu
Źródło: Pexels | Autor: Wolfgang Weiser

Podstawy pliku CSV: separator, kodowanie, nagłówki

Co naprawdę kryje się w pliku CSV

CSV (Comma Separated Values lub ogólniej Character Separated Values) to po prostu ciąg linii tekstu, w którym:

  • każda linia odpowiada jednemu wierszowi danych,
  • poszczególne pola w wierszu oddzielone są jednym znakiem – separatorem,
  • tekst bywa otaczany cudzysłowami, jeśli zawiera separator lub znak nowej linii.

W praktyce w jednym wierszu można więc spotkać coś takiego:

„Jan”;”Kowalski”;”01-234″;”ul. Długa 1″;”2023-01-02″;”123,45″

lub w innej wersji:

Jan,Kowalski,01-234,”ul. Długa 1″,02.01.2023,123.45

Dla Excela kluczowe są trzy rzeczy: jaki znak pełni rolę separatora, w jakim kodowaniu zapisano polskie znaki oraz jak wyglądają nagłówki na początku pliku. Jeśli rozumiesz te trzy elementy, masz kontrolę nad importem.

Rola separatora: przecinek, średnik, tabulator

Separator to znak, który rozdziela kolumny. Najczęściej spotykane:

  • Przecinek (,) – klasyczne rozumienie „CSV”. Popularny w systemach anglojęzycznych.
  • Średnik (;) – bardzo częsty w polskich programach, dlatego że w polskim systemie Windows przecinek pełni rolę separatora dziesiętnego.
  • Tabulator – często w plikach oznaczonych jako TXT lub TSV, ale bywa, że i w CSV.

Jeśli separator, którego używa plik, nie zgadza się z oczekiwaniami Excela, cały wiersz może wylądować w jednej kolumnie, albo liczba kolumn będzie się zupełnie nie zgadzać z liczbą nagłówków. Stąd pierwsza kontrola przed importem powinna dotyczyć tego, jakim znakiem są rozdzielone pola.

Niektóre pliki CSV dodatkowo otaczają pola cudzysłowami, szczególnie jeśli wartość:

  • zawiera separator (np. przecinek w adresie),
  • ma w środku znak nowej linii,
  • zawiera cudzysłów, który musi być odpowiednio „ucieczony”.

Excel potrafi sobie z tym radzić, o ile poprawnie ustawi się separator i sposób traktowania cudzysłowu w kreatorze importu tekstu.

Kodowanie znaków: UTF-8, Windows-1250 i pozostałe

Drugi filar poprawnego importu CSV do Excela to kodowanie znaków. To ono decyduje, czy „ą, ę, ś, ł, ć, ó, ń, ż, ź” zobaczysz poprawnie, czy zamienią się w „krzaczki”. Najczęściej spotykane warianty:

  • UTF-8 – najpopularniejsze współczesne kodowanie, standard w większości aplikacji webowych, narzędzi online i nowych systemów.
  • Windows-1250 (CP1250) – klasyczne kodowanie dla Europy Środkowo-Wschodniej w systemach Windows, nadal stosowane przez wiele programów księgowych i starsze systemy.
  • ANSI – ogólne określenie na „bieżące” kodowanie Windows, które w polskim systemie zwykle równa się CP1250, ale przy wymianie danych między różnymi systemami potrafi spowodować niespodzianki.

Jeśli plik jest zapisany w UTF-8, a Excel odczyta go jak Windows-1250, zobaczysz najczęściej rozsypane polskie znaki. Analogicznie w drugą stronę. Sam plik zwykle jest w porządku – wystarczy w kreatorze importu przełączyć kodowanie na takie, przy którym polskie znaki w podglądzie wyglądają poprawnie.

W nowszych wersjach Excela (Microsoft 365, Excel 2019+) standardowa opcja „Z tekstu/CSV” zazwyczaj automatycznie poprawnie wykrywa UTF-8, ale przy CP1250 trzeba czasem ręcznie zmienić kodowanie w oknie podglądu. W starszych wersjach (Excel 2010, 2013) konwersja UTF-8 bywa kłopotliwa, dlatego często lepiej użyć klasycznego kreatora importu tekstu.

Nagłówki kolumn w CSV – dlaczego mają znaczenie

Większość eksportów CSV ma w pierwszym wierszu nagłówki kolumn. Nazwy typu „Data”, „Kwota”, „Kontrahent”, „Kod pocztowy” ułatwiają późniejszą pracę w Excelu: filtrowanie, tabele przestawne, formuły. Czasami jednak CSV generowany jest bez nagłówków – pierwszy wiersz zawiera od razu dane.

Excel, importując CSV przez kreatora, zwykle pyta, czy pierwszy wiersz zawiera nagłówki. Jeśli zaznaczysz tę opcję przy pliku, który ich nie ma, ważne dane z pierwszego rekordu staną się nazwami kolumn i przepadną z arkusza. W drugą stronę – jeśli plik ma nagłówki, a Excel uzna pierwszy wiersz za dane, nagłówki „Data”, „Kwota” trafią jako zwykłe rekordy do tabeli.

Warto więc przed importem podejrzeć pierwszy wiersz w prostym edytorze tekstu, aby od razu wiedzieć, czy mamy do czynienia z nagłówkami, czy nie. Taka drobna kontrola oszczędza później sporo sprzątania.

Szybkie podejrzenie CSV w Notatniku lub Notepad++

Zanim uruchomisz import CSV do Excela, dobrym odruchem jest otworzenie pliku w zwykłym edytorze tekstu. W systemie Windows wystarczą:

  • Notatnik – kliknij prawym przyciskiem myszy, wybierz „Otwórz za pomocą”, potem „Notatnik”.
  • Notepad++ lub inny zaawansowany edytor – pokazuje od razu wykryte kodowanie, umożliwia łatwą zmianę i zapis.

Na co zwrócić uwagę podczas podglądu?

  • Separator – czy wartości są rozdzielone ;, ,, tabulatorem czy innym znakiem.
  • Polskie znaki – czy „ą, ę, ś” wyglądają normalnie, czy już w samym pliku są „krzaczki” (jeśli tak, problem leży po stronie generującego plik).
  • Nagłówki – czy pierwszy wiersz to nazwy kolumn, czy już dane.
  • Cudzysłowy – czy pola z przecinkami lub nowymi liniami są otoczone cudzysłowami.

Jedno spojrzenie na plik tekstowy często mówi więcej niż kilka prób otwierania CSV w Excelu „na ślepo”. Dzięki temu można od razu dobrać właściwe ustawienia importu: separator, kodowanie, obsługę nagłówków.

Kontenerowiec zacumowany w porcie w Hamburgu otoczony dźwigami i kontenerami
Źródło: Pexels | Autor: Wolfgang Weiser

Domyślny sposób otwierania CSV w Excelu – plusy i pułapki

Co robi Excel po podwójnym kliknięciu pliku CSV

Najczęstszy scenariusz: w folderze leży plik raport.csv. Podwójne kliknięcie i Excel się otwiera, pokazując tabelę. Wygląda wygodnie, bo nic nie trzeba ustawiać. W tle dzieje się jednak kilka automatycznych decyzji:

  • Excel na podstawie ustawień regionalnych systemu zgaduje separator listy (często przecinek lub średnik).
  • Interpreter CSV próbuje sam wykryć, jaki jest separator w pliku.
  • Excel decyduje, jak traktować poszczególne kolumny: jako liczby, tekst, daty, waluty.
  • Kodowanie znaków jest wybierane bez pytania użytkownika (w nowych wersjach najczęściej jako UTF-8, ale nie zawsze trafnie).

Gdy te domysły się sprawdzą, import CSV do Excela zakończy się sukcesem. Problem pojawia się, gdy jedno z założeń jest błędne: plik ma inny separator niż oczekiwany, inne kodowanie niż przewidział Excel, albo dane wyglądają jak liczby, choć w rzeczywistości powinny pozostać tekstem (np. kody, numery dokumentów).

Jak ustawienia regionalne Windows wpływają na separator CSV

Excel czerpie część informacji z ustawień regionu systemu Windows. Najważniejsze z perspektywy CSV są:

  • Separator dziesiętny (przecinek lub kropka),
  • Automatyczne rozpoznawanie liczb, dat i kodów – gdzie Excel przesadza z „inteligencją”

    Excel przy otwieraniu CSV próbuje zgadnąć, czym są dane w poszczególnych kolumnach. Na pierwszy rzut oka to wygodne, ale w praktyce prowadzi do klasycznych pułapek:

  • Numery ID i kody z wiodącymi zerami (np. „00123”, „000045”) zamienia na liczby i usuwa zera z przodu – po imporcie widzisz „123” i „45”.
  • Kody pocztowe z wiodącym zerem („01-234”) przy niekorzystnym separatorze lub zapisie mogą zostać skrócone lub potraktowane jako data.
  • Numery dokumentów zawierające myślniki lub ukośniki („FV/2023/01/01”) bywają interpretowane jako daty lub ułamki, po czym zmieniają postać.
  • Znaki „E” w środku (np. „1E10” w numerze przesyłki) Excel uznaje za zapis naukowy i konwertuje do postaci „10000000000”.

Jeśli dane po imporcie „dziwnie się zmieniają”, zwykle nie jest to wina pliku CSV, tylko automatycznych konwersji w Excelu. Rozwiązaniem jest świadomy import, w którym ręcznie ustawisz typ danych dla newralgicznych kolumn jako Tekst.

Kiedy szybkie otwarcie CSV „zadziała” bez kombinowania

Są sytuacje, w których podwójne kliknięcie pliku i automatyczny import w Excelu zupełnie wystarczą. Najczęściej dzieje się tak, gdy:

  • plik ma standardowy separator zgodny z ustawieniami systemu (np. średnik w polskim Windows),
  • kodowanie to UTF-8, które Excel nowe generacje dość dobrze wykrywają,
  • nie ma pól problematycznych: długich numerów, kodów z zerami na początku, nietypowych dat, numerów z literami,
  • zależy Ci tylko na szybkim podglądzie danych, a nie na perfekcyjnym imporcie.

Taki scenariusz jest typowy np. dla prostych raportów eksportowanych z systemów webowych, w których każdy wiersz to: data, nazwa klienta, kwota brutto, waluta. Gdy jednak w tych raportach pojawią się np. numery faktur z wiodącym zerem, warto przejść na bardziej kontrolowany sposób importu.

Dlaczego ten sam CSV w różnych komputerach otwiera się „inaczej”

Częsta frustrująca sytuacja: na jednym komputerze plik CSV otwiera się poprawnie, na innym w tej samej wersji Excela już nie. Zazwyczaj winne są:

  • różne ustawienia regionalne Windows (np. Polska vs. Stany Zjednoczone),
  • odmienne wersje Excela (np. Excel 2010 kontra Microsoft 365),
  • inna domyślna czcionka/system kodowania w środowisku użytkownika.

Na komputerze z regionem PL przecinek to separator dziesiętny, więc Excel „domyślny” CSV traktuje z separatorem średnik. W systemie z regionem EN przecinek częściej będzie separatorem kolumn. Ten sam plik na dwóch stacjach może więc wyglądać zupełnie inaczej – co budzi wątpliwości, czy plik jest „zepsuty”. Zwykle wystarczy na obu komputerach użyć tego samego, ręcznego sposobu importu i różnice znikają.

Widok z lotu ptaka na zatłoczony terminal samochodowy w porcie Istanbul
Źródło: Pexels | Autor: Julien Goettelmann

Świadomy import CSV przez Kreatora – krok po kroku

Jak uruchomić kreator importu tekstu w różnych wersjach Excela

Kreator importu tekstu daje pełną kontrolę nad separatorami, kodowaniem i typami kolumn. Problem w tym, że w zależności od wersji Excela jest on schowany w innym miejscu:

  • Excel 2010 / 2013 / 2016 (klasyczny) – na karcie Dane wybierz Z tekstu lub Z tekstu/plików, wskaż plik CSV i przejdź dalej.
  • Excel 2019 / Microsoft 365 – na karcie Dane kliknij Pobierz dane > Z pliku > Z tekstu/CSV. Pojawi się nowe okno Power Query; jeśli chcesz klasyczny kreator, użyj skrótu:
    • najpierw w Excelu wybierz pustą komórkę,
    • potem: Dane > Z tekstu/plików (w niektórych wersjach: Starsze kreatory, jeśli zostały włączone w opcjach dodatków).

Jeśli w Twojej wersji widać tylko nowoczesny import (Power Query), a zależy Ci na tradycyjnym kreatorze, można go aktywować w opcjach zaawansowanych lub skorzystać z obejścia: zmiana rozszerzenia pliku na .txt i ponowne uruchomienie importu z poziomu Dane > Z tekstu. Wówczas Excel częściej pokazuje stary kreator.

Pierwszy krok kreatora: wybór typu pliku i kodowania

Po wskazaniu pliku pojawia się pierwszy ekran kreatora tekstu. Najważniejsze elementy:

  • Typ danych:
    • Rozdzielane – jeśli dane w wierszu rozdziela przecinek, średnik, tabulator lub inny pojedynczy znak.
    • Stała szerokość – rzadziej wykorzystywane przy CSV; używane raczej przy plikach, w których kolumny zajmują zawsze tę samą liczbę znaków.
  • Oryginalny format pliku (kodowanie) – lista, w której możesz zmienić np. z „1250: Europa Środkowa (Windows)” na „65001: Unicode (UTF-8)”.

W tym miejscu najłatwiej naprawić polskie znaki. Wystarczy wybrać inne kodowanie i zerknąć na podgląd na dole okna – jeśli „ą, ę, ś” zaczynają wyglądać normalnie, to jest właściwe ustawienie. Nie trzeba znać nazwy kodowania na pamięć, wystarczy patrzeć na efekt w podglądzie.

Drugi krok kreatora: ustawienie separatora i ogranicznika tekstu

Drugi ekran kreatora to serce całego procesu. Tu decydujesz:

  • Jaki znak rozdziela kolumny – zaznaczasz, czy jest to średnik, przecinek, tabulator, spacja, czy inny znak (np. pionowa kreska |).
  • Jak Excel traktuje cudzysłowy – przez ustawienie ogranicznika tekstu.

W praktyce warto:

  • odznaczyć wszystkie separatory, które na pewno nie są używane,
  • zaznaczyć ten, który widać w edytorze tekstu (np. średnik),
  • ustawić ogranicznik tekstu na podwójny cudzysłów , jeśli w pliku widać wartości otoczone właśnie nim.

Podgląd na dole okna pokazuje, jak Excel dzieli wiersze na kolumny. Jeśli wszystkie dane „rozlały się” do pierwszej kolumny, separator jest ustawiony źle. Jeśli nagle liczba kolumn w podglądzie zgadza się z nagłówkami, znaczy, że trafiłeś w odpowiednią kombinację.

Gdy w pliku występują rzadziej spotykane ograniczniki tekstu (np. pojedynczy apostrof lub znak |), można je wpisać ręcznie w polu „Ogranicznik tekstu”, tak aby Excel potraktował zawartość między tymi znakami jako jedną całość, nawet jeśli w środku są przecinki czy średniki.

Trzeci krok kreatora: ręczne ustawianie typów danych w kolumnach

Na trzecim ekranie kreatora możesz określić format każdej kolumny z osobna. Tu usuwa się najwięcej problemów z kodami, datami i numerami:

  • Ogólny – Excel sam decyduje, co jest liczbą, datą, tekstem. Wiele kolumn można zostawić w tym trybie.
  • Tekst – używaj dla:
    • kodów pocztowych,
    • numerów dokumentów,
    • identyfikatorów z wiodącym zerem,
    • numerów kart, przesyłek, kont, które nie są liczbami „do liczenia”, tylko etykietami.
  • Data – jeśli masz pewność, w jakim formacie daty zapisano (np. RMD, DMR), możesz ustawić właściwy wariant, żeby uniknąć zamiany np. 03-04-2023 na inną interpretację (kwiecień/marzec).

Procedura jest prosta:

  1. Klikasz nagłówek kolumny w podglądzie.
  2. Zaznaczasz Tekst lub inny format w sekcji „Format danych w kolumnie”.
  3. Powtarzasz dla wszystkich kolumn, które chcesz chronić przed automatyczną konwersją.

Dzięki temu Excel nie usunie zer z przodu, nie przerobi numeru faktury na datę ani nie zamieni długiego numeru przesyłki na zapis naukowy. To kilka kliknięć, które potrafią uratować cały raport.

Import przez Power Query („Z tekstu/CSV”) – inny interfejs, podobna logika

W nowszych wersjach Excela import CSV często otwiera się przez okno Power Query. Interfejs wygląda inaczej niż klasyczny kreator, ale koncepcja pozostaje zbliżona:

  • Na górze możesz wybrać kodowanie (np. UTF-8, 1250) i separator (średnik, przecinek, tabulator, niestandardowy).
  • Podgląd tabeli aktualizuje się na bieżąco przy każdej zmianie.
  • Przycisk Przekształć dane otwiera edytor Power Query, gdzie każdą kolumnę możesz ustawić jako tekst, datę, liczbę itd.
  • Przycisk Załaduj od razu przenosi dane do Excela, korzystając z bieżących ustawień.

Jeśli masz obawę, że coś się „po drodze” przekonwertuje, bezpieczniejsza jest ścieżka: najpierw Przekształć dane, a dopiero potem Zamknij i załaduj. W edytorze możesz też zapisać kroki importu, aby przy kolejnym, podobnym pliku wykonały się automatycznie.

Separatory: przecinek, średnik, tabulator – jak nad nimi zapanować

Dlaczego w Polsce CSV często ma średnik zamiast przecinka

W polskiej konfiguracji Windows przecinek jest domyślnym separatorem dziesiętnym. Żeby uniknąć konfliktu między „przecinkiem w liczbie” a „przecinkiem między kolumnami”, wiele aplikacji eksportujących dane używa średnika jako separatora pól. Efekt:

  • w pliku liczby wyglądają tak: 123,45,
  • kolumny są oddzielone średnikiem: 123,45;Jan Kowalski;01-234.

Excel, korzystając z ustawień regionalnych, często zakłada, że CSV w polskim systemie będzie używał średnika. Gdy jednak trafia na plik z przecinkiem jako separatorem kolumn (np. wygenerowany w systemie angielskim), jego automatyczne rozpoznawanie zaczyna się mylić. Dlatego przy imporcie z „obcych” systemów ręczne wskazanie separatora bywa niezbędne.

Ręczna zmiana separatora listy w systemie Windows

Jednym ze sposobów na problem z separatorami jest zmiana separatora listy w ustawieniach regionu Windows. To jednak działa globalnie – wpływa nie tylko na Excela, ale i na inne programy.

Ścieżka w Windows (może się minimalnie różnić w zależności od wersji):

  1. Otwórz Panel sterowania.
  2. Wejdź w Zegar i region > Region.
  3. Kliknij Dodatkowe ustawienia….
  4. W polu Separator listy zmień np. z przecinka na średnik albo odwrotnie.

Po takiej zmianie Excel przy podwójnym otwieraniu CSV może zacząć inaczej interpretować separatorem kolumn. Tę drogę lepiej traktować jako rozwiązanie awaryjne, a nie codzienny sposób pracy – łatwo o zamieszanie, gdy inne aplikacje zaczną oczekiwać innego znaku.

Tabulator jako separator – kiedy TXT zachowuje się jak CSV

Część programów zamiast klasycznego „CSV” generuje pliki z separatorem tabulacji i zapisuje je z rozszerzeniem .txt lub .tsv. Przy podglądzie w Notatniku takie dane wyglądają jak ciąg słów oddzielonych „pustym miejscem”, ale w rzeczywistości między kolumnami jest znak tabulatora.

Excel radzi sobie z takimi plikami bardzo dobrze, o ile:

  • w kreatorze importu zaznaczysz Tabulator jako separator,
  • nie wybierzesz jednocześnie innych separatorów (żeby nie dzielić przypadkiem pól z przecinkami w środku).

Zaletą tabulatora jako separatora jest mniejsze ryzyko konfliktu z przecinkami i średnikami wewnątrz danych. Minusem – niższa czytelność pliku w prostych edytorach, bo „szerokość” tabulatora bywa różnie wyświetlana.

Łączenie i rozdzielanie kolumn po imporcie – gdy separator jednak „nie siadł”

Zdarza się, że mimo prób z kreatorem część danych ląduje w jednej kolumnie, albo odwrotnie – jedna logiczna kolumna zostaje podzielona na kilka. Nie trzeba wtedy zaczynać całego importu od zera. W wielu przypadkach szybciej jest naprawić układ już w arkuszu.

Rozdzielanie jednej kolumny na kilka – „Tekst jako kolumny”

Klasyczne narzędzie do takiej naprawy to Tekst jako kolumny. Sprawdza się, gdy:

  • wszystkie dane utknęły w kolumnie A, rozdzielone średnikami lub przecinkami,
  • masz jedną kolumnę z pełnym adresem i chcesz osobno ulicę, kod, miasto,
  • system wyeksportował różne pola do jednej komórki, ale z wyraźnym separatorem (np. „|”).

Kroki są podobne jak przy imporcie, tylko działasz już na istniejącej kolumnie:

  1. Zaznacz kolumnę z „zlepionymi” danymi.
  2. Przejdź do Dane > Tekst jako kolumny.
  3. Wybierz Rozdzielane i kliknij Dalej.
  4. Wskaż właściwy separator (średnik, przecinek, tabulator, inny).
  5. Ustaw ogranicznik tekstu, jeśli w danych występują cudzysłowy.
  6. Na trzecim kroku wybierz formaty kolumn (np. Tekst dla kodów, Ogólny dla liczb).
  7. Wskaż miejsce docelowe (domyślnie nadpisuje bieżącą kolumnę i sąsiednie).

Jeśli obok są ważne dane, przed użyciem narzędzia wstaw kilka pustych kolumn, aby nowo powstałe pola miały gdzie się rozlać. Chroni to przed przypadkowym nadpisaniem.

Łączenie kilku kolumn w jedną – funkcje i operator &

Czasem separator był dobrany zbyt „agresywnie” i jedna logiczna wartość pękła na kilka kolumn. Typowy przykład: pełne imię i nazwisko przecięte na „Jan” i „Kowalski”, podczas gdy w systemie docelowym ma być jeden ciąg.

Najprostszy sposób na sklejenie zawartości to użycie:

  • operatora &, np. =A2&" "&B2,
  • funkcji SCAL.TEKSTY (w nowszych wersjach) lub ZŁĄCZ.TEKSTY.

Przykład praktyczny: chcesz z kolumn A (Imię) i B (Nazwisko) zrobić jedną kolumnę C:

  1. W komórce C2 wpisz formułę: =A2&" "&B2.
  2. Przeciągnij formułę w dół dla całej listy.
  3. Jeśli docelowo ma zostać tylko scalona kolumna, skopiuj ją i wklej jako Wartości w to samo miejsce.

Przy większej liczbie kolumn (np. adres z ulicy, numeru domu i lokalu) formuła może być dłuższa, ale zasada jest ta sama. Gdy zachowanie spacji lub przecinków jest istotne, wpisuj je świadomie w cudzysłowie, np. =A2&", "&B2.

Gdy separator jest częścią danych – funkcje TEKSTU.W.KOLUMNY i zamiana znaków

Trudniejsza sytuacja pojawia się wtedy, gdy ten sam znak pełni rolę separatora i jednocześnie występuje w treści (np. przecinek w opisach). Jeśli kreator nie poradził sobie poprawnie, czasem łatwiej:

  • tymczasowo zamienić „wewnętrzny” separator na inny znak (np. rzadko używany symbol),
  • wykonać rozdzielenie kolumn przez Tekst jako kolumny,
  • a potem przywrócić właściwy znak tylko w odpowiednich polach.

Do takich zamian przydaje się funkcja PODSTAW, np.:

=PODSTAW(A2;",";"|")

W ten sposób można „uciec” z problematycznym separatorem i poradzić sobie z rozbijaniem danych etapami, zamiast walczyć z jednym, nieudanym importem.

Kodowanie i polskie znaki przy pracy na Macu i w mieszanym środowisku

Kiedy pliki CSV wędrują między Windows, macOS i systemami serwerowymi (Linux), problemy z polskimi znakami potrafią się pojawiać nawet przy poprawnym separatorze. Źródłem są różne domyślne kodowania i sposoby zapisu końców linii.

Typowe kombinacje kodowań spotykane w praktyce

Najczęściej spotykane scenariusze to:

  • Windows & aplikacje biurowe – pliki w Windows-1250 lub UTF-8 (czasem bez BOM),
  • systemy webowe / API – w zdecydowanej większości UTF-8, często z nagłówkiem BOM,
  • stare systemy ERP – różne odmiany ISO-8859 (np. ISO-8859-2),
  • macOS – z Excela lub Numbers zwykle również UTF-8, ale inaczej opisywane w metadanych.

Gdy na Macu otwierasz plik wygenerowany w polskim Windows w kodowaniu 1250, polskie znaki mogą się posypać. Analogicznie, Excel na Windows potrafi źle „odczytać” UTF-8 bez BOM przy podwójnym kliknięciu.

Bezpieczna ścieżka: konwersja kodowania przed importem

Jeśli masz powtarzalny problem z konkretnym systemem źródłowym, opłaca się wprowadzić prosty krok pośredni: konwersję CSV do UTF-8 w zewnętrznym narzędziu, a dopiero potem import do Excela. Kilka wygodnych dróg:

  • Notepad++ (Windows):
    1. Otwórz plik.
    2. Menu Kodowanie – wybierz aktualne (np. Wymuś kodowanie w Windows-1250).
    3. Sprawdź podgląd polskich znaków; jeśli wygląda dobrze, wybierz Kodowanie > Konwertuj na UTF-8.
    4. Zapisz plik i dopiero ten nowy plik importuj do Excela.
  • VS Code, Sublime, inne edytory – mają podobne opcje zmiany kodowania przy zapisie.
  • macOS – TextEdit:
    1. Otwórz plik, sprawdź, czy polskie znaki są poprawne.
    2. Użyj Zapisz jako… i w opcjach wybierz UTF-8.

Ten dodatkowy krok najczęściej całkowicie eliminuje „krzaczki” w późniejszym imporcie, zwłaszcza przy mieszance starszych systemów i nowszego Excela.

Gdy Excel na Macu uparcie miesza polskie znaki

Jeśli pracujesz na Macu i import z CSV uparcie ścina „ą, ę, ł”, spróbuj:

  • nie otwierać pliku przez podwójne kliknięcie, tylko używać Data > From Text/CSV (odpowiednik Power Query),
  • sprawdzić, czy w oknie podglądu możesz ręcznie wybrać File Origin / Encoding i wymusić UTF-8 lub odpowiednie kodowanie europejskie,
  • w sytuacji beznadziejnej – wykonać wspomnianą wcześniej konwersję kodowania w zewnętrznym edytorze.

W projektach, gdzie wiele osób pracuje na różnych systemach, dobrą praktyką jest ustalenie jednego standardu: UTF-8 + separator średnik lub przecinek oraz zapisanie tej informacji w dokumentacji raportu czy integracji.

Praca z dużymi plikami CSV – jak nie „udusić” Excela

Gdy plik CSV ma kilkaset tysięcy wierszy albo dziesiątki kolumn, Excel zaczyna się męczyć. Import może trwać długo, a plik po zapisaniu w formacie XLSX robi się ogromny i ospały. Są sposoby, żeby takim danym „dać szansę” bez wymiany komputera na serwer.

Limit wierszy i alternatywy

Klasyczny arkusz w Excelu ma twardy limit 1 048 576 wierszy. Jeśli CSV ma więcej, nadmiar po prostu się nie załaduje. Tymczasowe obejścia:

  • Podział CSV na kilka plików (np. po 500 tys. wierszy) i import do osobnych arkuszy.
  • Użycie Power Query do ładowania danych tylko do modelu danych (bez wyświetlania wszystkich wierszy w arkuszu) i dalszej pracy przez przestawne.
  • Jeśli dane są naprawdę duże – rozważenie importu do Power BI lub bazy danych (np. SQL Server, SQLite) i tylko zaciąganie podsumowań do Excela.

W codziennej pracy biurowej częściej pomaga już sam podział pliku na logiczne części – np. osobne CSV dla lat lub działów – zamiast jednego gigantycznego zlepku.

Import partiami i filtrowanie już na etapie wczytywania

Dużo czasu można oszczędzić, jeśli nie wczytujesz „wszystkiego, na wszelki wypadek”. W Power Query da się:

  • od razu odfiltrować niepotrzebne wiersze (np. stare lata, nieaktywnych klientów),
  • usunąć zbędne kolumny zanim dane trafią do arkusza,
  • agregować dane (sumy, liczniki) jeszcze w edytorze zapytań.

Dzięki temu do Excela trafia już odchudzony zestaw. Przy powtarzalnych raportach ustawisz to raz, a potem tylko odświeżasz zapytanie jednym kliknięciem.

Automatyzacja powtarzalnych importów CSV

Gdy co tydzień lub co miesiąc dostajesz „taki sam, tylko z nową datą” CSV, ręczne klikanie kreatora szybko zaczyna irytować. Można to zamienić w półautomatyczny lub całkowicie automatyczny proces.

Power Query jako szablon importu

Power Query zapisuje wszystkie kroki: wybór separatora, kodowania, nazwy kolumn, typów danych, przefiltrowanie i przekształcenia. Po pierwszym poprawnym imporcie:

  1. Zapisz skoroszyt z zapytaniem.
  2. Przy kolejnym pliku CSV:
    • podmień plik źródłowy (zachowując tę samą nazwę i folder), lub
    • w edytorze Power Query zmień źródło na nowy plik.
  3. Użyj Odśwież wszystko, a nowe dane przejdą przez te same kroki.

W ten sposób raz ustawione typy kolumn (np. numery jako tekst, daty w określonym formacie) będą wymuszane za każdym odświeżeniem, co praktycznie eliminuje ryzyko, że coś się „przestawi”.

Folder jako źródło – automatyczne łączenie wielu CSV

Częsty scenariusz: co dzień pojawia się nowy plik CSV z tym samym układem kolumn. Manualne dopisywanie do arkusza jest męczące. Power Query ma źródło Folder, które:

  • zbiera wszystkie pliki z danego folderu (np. „/raporty_dzienne”),
  • łączy je w jedną tabelę,
  • po odświeżeniu automatycznie dołącza nowe pliki, które tam wrzucisz.

Podczas konfiguracji wystarczy raz poprawnie zinterpretować separator, kodowanie i ustawić typy kolumn. Później każda kolejna dostawa CSV „wpada” do tego samego schematu bez dodatkowych kliknięć.

Specyficzne problemy z datami i liczbami po imporcie CSV

Nawet przy prawidłowym separatorze i kodowaniu potrafią wyskoczyć kłopoty ze specyficznymi zapisami dat i liczb. Objawia się to np. datami wyrównanymi do lewej, liczbami traktowanymi jak tekst albo dziwnymi wartościami typu 2023-01-01T00:00:00.

Daty w formacie tekstowym – „twardy” zapis i konwersja

Jeśli daty po imporcie są wyrównane do lewej i formuły datowe na nich nie działają, Excel widzi je jako tekst. Przyczyny:

  • inny separator w dacie (kreska zamiast kropki lub odwrotnie),
  • inny układ (RMD zamiast DMR),
  • dodatkowy tekst (np. godzina) w tej samej komórce.

Kilka praktycznych dróg naprawy:

  • Funkcja DATA.WARTOŚĆ – konwertuje tekst na datę, jeśli tekst jest w rozpoznawalnym układzie:
    =DATA.WARTOŚĆ(A2)
  • Rozbijanie na części (ROK, MIESIĄC, DZIEŃ) przy formacie 2023-01-05:
    =DATA(LEWY(A2;4);FRAGMENT.TEKSTU(A2;6;2);PRAWY(A2;2))
  • Najczęściej zadawane pytania (FAQ)

    Dlaczego po otwarciu pliku CSV w Excelu mam „krzaczki” zamiast polskich znaków?

    To zwykle problem z kodowaniem znaków. Plik może być zapisany np. w UTF-8, a Excel próbuje go odczytać jak Windows-1250 (CP1250) albo odwrotnie. Sam CSV najczęściej jest poprawny, tylko Excel źle go interpretuje.

    Rozwiązanie: zamiast podwójnie klikać plik, użyj w Excelu opcji Dane > Z tekstu/CSV (lub klasycznego kreatora importu tekstu w starszych wersjach). W oknie podglądu zmieniaj kodowanie (np. na UTF-8 lub 1250), aż polskie znaki w podglądzie będą wyglądać normalnie. Dopiero wtedy zatwierdź import.

    Jak ustawić separator przy imporcie CSV do Excela (przecinek, średnik, tabulator)?

    Excel często sam „zgaduje” separator. Jeśli zgadnie źle, wszystkie dane lądują w jednej kolumnie albo kolumny są kompletnie rozjechane. Najpierw podejrzyj plik w Notatniku lub innym edytorze: jeśli między polami widzisz przecinki, to separator to przecinek, jeśli średniki – separator to średnik, jeśli duże „puste” odstępy – zwykle tabulator.

    Podczas importu Z tekstu/CSV wybierz ręcznie odpowiedni separator (przecinek, średnik, tabulator). W starszych wersjach Excela użyj kreatora importu: zaznacz „Rozdzielany”, potem zaznacz znak, który faktycznie rozdziela dane. Po zmianie od razu zobaczysz w podglądzie, czy kolumny „wróciły na miejsce”.

    Jak poprawnie otworzyć plik CSV w Excelu, żeby nie rozjechały się kolumny i daty?

    Kluczowe jest, by nie otwierać CSV przez podwójne kliknięcie w Eksploratorze, bo wtedy Excel wszystko robi automatycznie. Bezpieczniejsza ścieżka to: Dane > Z tekstu/CSV, wybór pliku, a potem ręczne ustawienie kodowania, separatora i typów kolumn.

    Jeśli masz kody pocztowe, numery dokumentów, PESEL – w kreatorze importu ustaw dla tych kolumn typ Tekst, a nie Ogólny. Dzięki temu Excel nie zamieni ich przypadkiem w daty ani nie obetnie zer na początku. Po jednym–dwóch takich imporach cała procedura staje się rutyną.

    Jak zmusić Excela, żeby nie zamieniał numerów (np. PESEL, kody pocztowe) na daty?

    Excel z założenia próbuje „pomagać” i automatycznie rozpoznaje daty oraz liczby. Dla numerów takich jak PESEL, NIP czy kody pocztowe to pułapka – potrafi zmienić je w daty lub notację naukową.

    Podczas importu w kreatorze:

    • dojdź do kroku, w którym widzisz listę kolumn,
    • zaznacz kolumny z numerami, które mają pozostać niezmienione,
    • ustaw dla nich typ Tekst.

    Jeśli plik już jest źle otwarty, najprościej jest zamknąć go bez zapisywania i wczytać ponownie z prawidłowymi ustawieniami, zamiast ratować każdy numer ręcznie.

    Czym różni się CSV w UTF-8 od CSV w Windows-1250 i które wybrać do Excela?

    Oba formaty to zwykły tekst, ale inaczej kodują polskie znaki. UTF-8 to nowoczesny, międzynarodowy standard – domyślny w większości aplikacji webowych. Windows-1250 (CP1250) to starsze kodowanie popularne w polskich programach księgowych, magazynowych czy kadrowych.

    Jeśli masz wpływ na eksport, wybieraj UTF-8, bo jest bardziej uniwersalne i nowsze wersje Excela radzą sobie z nim coraz lepiej. Jeśli plik dostajesz z zewnętrznego systemu, nie zmieniaj go „na siłę” – w Excelu podczas importu po prostu wybierz to kodowanie, przy którym polskie znaki w podglądzie wyglądają poprawnie (dla wielu starszych programów będzie to właśnie Windows-1250).

    Czy uszkodzę dane, jeśli źle otworzę plik CSV w Excelu?

    Sam fakt błędnego otwarcia CSV w Excelu nie niszczy pliku. Dane źródłowe zostają takie, jakie były – Excel tylko błędnie je wyświetla i interpretuje. Dopóki nie zapiszesz nad plikiem (np. jako CSV), zawsze możesz zamknąć Excela i spróbować kolejny raz z innymi ustawieniami importu.

    Nie ma więc sensu przepisywać danych ręcznie, gdy zobaczysz „krzaczki” albo rozjechane kolumny. Lepiej zamknąć plik bez zapisywania i ponownie go zaimportować, ustawiając ręcznie separator, kodowanie i typy najwrażliwszych kolumn.

    Jak szybko sprawdzić, jaki separator i kodowanie ma mój plik CSV?

    Gdy pojawia się nowy CSV z nieznanego systemu, dobrze jest go najpierw „przeskanować”. Najprościej: otwórz plik w Notatniku lub Notepad++ i sprawdź, jak wyglądają wiersze. Jeśli wartości oddzielone są przecinkami – separator to przecinek, jeśli średnikami – średnik, jeśli widzisz duże „puste” przestrzenie – zwykle tabulator.

    Do sprawdzenia kodowania przydają się edytory tekstu pokazujące je w menu (np. Notepad++, VS Code). Zmieniaj podgląd kodowania (UTF-8, ANSI, Windows-1250) i obserwuj polskie znaki. Tam, gdzie „ą, ę, ś, ł” wyglądają normalnie, masz właściwe kodowanie, które później warto ustawić podczas importu do Excela.