Otwórz plik pierwotny i plik zaktualizowany, wybierz kolumnę, która identyfikuje wiersz – np. numer zamówienia albo SKU – a różnice pojawią się od razu: wiersze występujące tylko w pliku zaktualizowanym są dodane, wiersze tylko w pliku pierwotnym są usunięte, a wiersze obecne w obu, ale z innymi wartościami, są zmienione i pokazują każdą wartość przed zmianą i po niej. Wiersze mogą się dowolnie przemieszczać w pliku i nie jest to liczone jako zmiana. Wynik pobierzesz jako raport CSV z jednym wierszem na każdą zmienioną komórkę. Oba pliki są porównywane w Twojej przeglądarce i nigdy nie są wysyłane na serwer.
Jak porównać dwa pliki CSV
- Otwórz plik pierwotny w pierwszym polu, a plik zaktualizowany w drugim. Każde pole ma własne ustawienia importu dla ogranicznika, nagłówka i kodowania, więc eksport rozdzielany średnikami (np. z polskiego Excela) możesz porównać z plikiem rozdzielanym przecinkami.
- Wybierz dopasowanie według kolumn kluczowych i zaznacz jedną lub kilka kolumn kluczowych spośród kolumn wspólnych dla obu plików. Kilku kolumn użyj wtedy, gdy żadna pojedyncza nie jest unikatowa, np.
order_idiline. - Ustaw opcje porównania, przejrzyj podsumowanie i listę różnic – w razie potrzeby zawężoną do dodanych, usuniętych lub zmienionych – a potem pobierz raport zmian.
Dopasowanie według pozycji wiersza wybierz wtedy, gdy pliki nie mają kolumny z identyfikatorem, a wiersze na pewno są w tej samej kolejności: wiersz 1 jest porównywany z wierszem 1 i tak dalej. Wtedy jednak jeden wstawiony wiersz sprawia, że każdy kolejny wygląda na zmieniony, więc jeśli masz klucz, korzystaj z niego.
Opcje porównania
| Ignoruj wielkość liter | Desk Lamp jest równe desk lamp. Dotyczy zarówno kolumn kluczowych, jak i wartości. |
|---|---|
| Ignoruj nadmiarowe spacje | Przed porównaniem usuwa spacje z obu końców wartości, a każdy ciąg spacji, tabulatorów lub podziałów wiersza wewnątrz wartości traktuje jak jedną spację. Dotyczy także kluczy. |
| Tolerancja liczb | Gdy obie wartości są liczbami, uznaje się je za równe, jeśli różnią się najwyżej o podaną wartość, np. 0.01. Obliczenia są dokładne dziesiętnie, a nie zmiennoprzecinkowe, a tolerancja 0 traktuje 45.0 i 45.00 jako tę samą liczbę. Wartości są liczbami tylko wtedy, gdy zapisano je z kropką dziesiętną i bez separatora tysięcy: 1,000 pozostaje tekstem, a 1e3 jest odczytywane jako 1000. Tolerancja sprawia też, że 007 jest równe 7, bo obie wartości są odczytywane jako liczby. Zostaw pole puste, aby porównywać tekst dokładnie. |
| Kolumny do pominięcia | Kolumny całkowicie wyłączone z porównania, np. updated_at albo znacznik czasu eksportu, który zmienia się za każdym razem. |
Kolumny występujące tylko w jednym pliku są wymienione w podsumowaniu i nie są porównywane. Jeśli to ta sama kolumna pod nową nazwą, zmień jej nazwę w narzędziu Zmiana nazw i kolejności kolumn CSV.
Powtórzone i puste klucze
Klucz powinien identyfikować jeden wiersz. Jeśli tak nie jest, nic nie zostaje ukryte: podsumowanie liczy powtórzone klucze i podaje pierwszy z nich, a wiersze z tym samym kluczem są łączone w pary w kolejności występowania. Pierwszy wiersz pliku pierwotnego z kluczem 1 jest porównywany z pierwszym wierszem pliku zaktualizowanego z kluczem 1, drugi z drugim, a nadmiarowe wiersze po którejkolwiek stronie są raportowane jako usunięte lub dodane.
Takie łączenie w pary może pokazać zmianę, która w rzeczywistości jest tylko zamianą miejscami dwóch wierszy o tym samym kluczu. Jeśli podsumowanie wspomina o powtórzonych kluczach, dodawaj kolejne kolumny kluczowe, aż każda kombinacja będzie unikatowa. Wiersze, w których wszystkie kolumny kluczowe są puste, są liczone osobno, bo zwykle pochodzą z pustych linii albo z uszkodzonego eksportu.
Jak czytać wyniki i raport
Podsumowanie podaje liczbę dodanych, usuniętych, zmienionych i niezmienionych wierszy oraz łączną liczbę zmienionych komórek. Lista pokazuje różnice w kolejności z pliku pierwotnego, a po nich wiersze występujące tylko w pliku zaktualizowanym. Przy każdej różnicy widać klucz i numer wiersza w każdym pliku, przy czym wiersze danych liczone są od 1, bez nagłówka. Strona pokazuje pierwszych 500 różnic; raport zawiera wszystkie.
change | added (dodany), removed (usunięty) lub changed (zmieniony). |
|---|---|
| Kolumny kluczowe | Wartość klucza. Gdy włączone jest ignorowanie wielkości liter lub nadmiarowych spacji, klucz jest pokazywany w postaci porównywanej – małymi literami lub bez spacji. Przy dopasowaniu według pozycji numer wiersza zawiera pojedyncza kolumna row. |
original_row, updated_row | Numery wierszy danych w każdym pliku; puste po tej stronie, po której wiersz nie istnieje. |
column, original_value, updated_value | Jeden wiersz raportu na każdą zmienioną komórkę. Puste dla dodanych i usuniętych wierszy, które zajmują po jednym wierszu raportu. |
Raport to plik CSV w UTF-8 nazwany od pliku zaktualizowanego, np. feb-changes.csv. Otwórz go w przeglądarce CSV, aby posortować lub przeszukać zmiany.
Dlaczego wiersze są oznaczone jako dodane, usunięte lub zmienione
- Każdy wiersz jest jednocześnie dodany i usunięty. Wartości klucza są zapisane w obu plikach inaczej, np.
00123i123albo ze spacją na końcu. Włącz ignorowanie nadmiarowych spacji albo popraw kolumnę w narzędziu Czyszczenie danych CSV. Zera wiodące w kluczach zawsze mają znaczenie, bo klucze są porównywane jako tekst. - Równe liczby są pokazywane jako zmienione.
45.00i45.0to różny tekst; wpisz tolerancję, np.0lub0.005, aby porównać je jako liczby. Liczby z przecinkiem dziesiętnym (np. 45,00 z polskiego eksportu) lub z separatorami tysięcy są zawsze porównywane jako tekst. - Na liście brakuje kolumny kluczowej. Kluczami mogą być tylko kolumny obecne w obu plikach, a ich nazwy muszą być identyczne. Jeśli cały nagłówek trafił do jednej kolumny, sprawdź ustawienia importu.
- Od pewnego miejsca każdy wiersz jest zmieniony. Dopasowujesz według pozycji, a jakiś wiersz został wstawiony lub usunięty. Przełącz na dopasowanie według kolumn kluczowych.
Limity porównywania i prywatność
Każdy plik może mieć do 25 MB, 100 000 wierszy, 250 kolumn i 2 mln komórek. Porównanie nie działa strumieniowo: oba pliki są trzymane w pamięci, a różnice aktualizują się przy każdej zmianie opcji.
Pliki są porównywane w Twojej przeglądarce i nigdy nie są wysyłane na serwer. Aby zamiast tego połączyć dwie wersje, użyj narzędzia Łączenie i złączanie plików CSV; aby sprawdzić jeden plik według reguł, użyj narzędzia Walidacja CSV.
Przykład: dwie listy produktów z kluczem SKU
Dwie listy produktów z kluczem sku, porównane z domyślnymi, dokładnymi ustawieniami. Wiersze są w innej kolejności, co nie ma znaczenia. Po włączeniu ignorowania wielkości liter i spacji oraz tolerancji 0.001 zostaje tylko zmiana stock w produkcie 00456.
jan.csv (original) sku,name,price,stock 00123,Desk lamp,19.90,4 00456,Shelf,45.00,2 00789,Stool,12.00,9 feb.csv (updated) sku,name,price,stock 00456,Shelf,45.0,0 00123,Desk Lamp ,19.90,4 01010,Bench,80.00,1
change,sku,original_row,updated_row,column,original_value,updated_value changed,00123,1,2,name,Desk lamp,"Desk Lamp " changed,00456,2,1,price,45.00,45.0 changed,00456,2,1,stock,2,0 removed,00789,3,,,, added,01010,,3,,,
Pytania i odpowiedzi
Czy kolejność wierszy ma znaczenie?
Nie przy dopasowaniu według klucza: wiersze są odnajdywane po kluczu, niezależnie od tego, gdzie znajdują się w każdym pliku. Kolejność ma znaczenie tylko przy dopasowaniu według pozycji wiersza.
Który plik powinien być pierwotny?
Starszy. Wiersze występujące tylko w drugim pliku są raportowane jako dodane, a tylko w pierwszym – jako usunięte, więc zamiana plików miejscami zamienia te dwie listy oraz wartości przed zmianą i po niej.
Czy mogę porównać kolumny o różnych nazwach?
Porównywane są tylko kolumny z takim samym nagłówkiem w obu plikach, a każda kolumna kluczowa musi mieć tę samą nazwę w obu plikach. Najpierw zmień nazwy kolumn w jednym z plików w narzędziu Zmiana nazw i kolejności kolumn CSV.