CSV-exports op identificatiecode vergelijken zonder sorteren voor een wijziging aan te zien

Vergelijk twee CSV-exports op een samengestelde sleutel met een fictieve voorraadlijst. Reproduceer exacte rij- en celverschillen, herken dubbele sleutels en bewaar een lokaal rapport.

Kort antwoord

Koppel records via een stabiele identificatiecode voordat je hun waarden vergelijkt. In de CSV-vergelijker op sleutel, is een rij op een andere positie geen wijziging. Een veranderde hoeveelheid is dat wel. Een sleutel die alleen in de tweede export voorkomt, is toegevoegd; een sleutel die alleen in de eerste voorkomt, is verwijderd.

Kies de vraag voordat je de tool kiest

Stel dat twee voorraadexports anders zijn gesorteerd. Als je hun onbewerkte regels vergelijkt, kan ongewijzigde voorraad anders lijken. Vergelijken op sleutel beantwoordt de vraag: welke cellen zijn veranderd voor hetzelfde artikel in hetzelfde magazijn? Het bepaalt niet waarom ze veranderden, of er een verkoop plaatsvond of welke export leidend is. Controleer zelf de exportdatums en de afbakening voordat je conclusies trekt.

Een kleine, volledig fictieve voorraadlijst

De onderstaande identificatiecodes zijn tekst. Behoud 001 precies zoals het er staat. De Engelse kolomnamen en fictieve magazijnnamen zijn bewust gekozen, zodat elke taalversie van dit voorbeeld hetzelfde rapport oplevert.

Voor

sku,warehouse,quantity,note
001,North,10,"Blue, small"
002,North,5,Keep
003,South,2,Retire

Na

sku,warehouse,quantity,note
002,North,5,Keep
001,North,12,"Blue, small"
004,South,3,New

Het resultaat reproduceren

  1. Open de vergelijker. De knop voor het fictieve voorbeeld vervangt beide huidige invoeren en voert dit voorbeeld uit. Wil je het handmatig doen, plak de twee blokken dan in CSV vóór en CSV na.
  2. Selecteer voor beide de komma als scheidingsteken. De komma in "Blue, small" hoort bij de notitie en begint geen nieuwe kolom.
  3. Lees de kolommen in en selecteer sku en warehouse als identificatiekolommen.
  4. Vergelijk de rijen en open de details van de gewijzigde rij.

De exacte totalen zijn 1 toegevoegd, 1 verwijderd, 1 gewijzigd, 1 ongewijzigd en 1 gewijzigde cel. Beide invoeren hebben drie gegevensrijen.

Waarom een samengestelde sleutel gebruiken?

In dit kleine voorbeeld is sku toevallig ook op zichzelf uniek. Echte exports kunnen dezelfde SKU in verschillende magazijnen herhalen. Voeg de regel 001,South,7,Other toe onderaan beide voorbeelden: als je nu alleen sku selecteert, ontstaat een fout wegens een dubbele sleutel. Selecteer je sku plus warehouse, dan werkt het en krijg je twee ongewijzigde rijen in plaats van één. De overige totalen blijven gelijk. Een samengestelde sleutel is een tupel, geen aaneengeplakt label, zodat tekens die op scheidingstekens lijken binnen onderdelen geen onterechte overeenkomsten veroorzaken.

Exacte tekenreeksen zorgvuldig interpreteren

De tool verwijdert geen spaties, maakt hoofdletters en kleine letters niet gelijk, leidt geen datums af en converteert geen getallen. 001 verschilt van 1; 10 verschilt van 10.0. Lege tekst verschilt van een spatie. Elk sleutelonderdeel moet iets anders dan alleen witruimte bevatten en elke volledige sleutel moet uniek zijn binnen zijn export. Een veranderde sleutel wordt gemeld als een verwijdering plus een toevoeging, omdat de tool geen ander bewijs van identiteit heeft.

Beide bestanden moeten exact dezelfde unieke, niet-lege kolomnamen hebben. De kolomvolgorde mag verschillen; toegevoegde of hernoemde kolommen stoppen de vergelijking. Ontbrekende velden, lege records en onjuist gebruikte aanhalingstekens worden geweigerd. Een afsluitend regeleinde wordt geaccepteerd. Dubbele aanhalingstekens binnen een veld tussen aanhalingstekens moeten worden verdubbeld; regeleinden binnen aanhalingstekens blijven onderdeel van die cel.

Het rapport bruikbaar en privé houden

Het voorbeeld toont maximaal 100 afwijkende rijen en 500 cellen, waarbij lange waarden worden ingekort. JSON- en tekstdownloads bevatten elk verschil in de geaccepteerde invoer. Waarden worden als JSON-tekenreeksen met aanhalingstekens weergegeven, zodat lege tekenreeksen, tabs en regeleinden te onderscheiden blijven. Record 1 is de kopregel; een regeleinde binnen aanhalingstekens verhoogt het recordnummer niet. Veldnamen in het rapport blijven vaste Engelse labels, ook als de interface is vertaald.

Selecteer UTF-8-bestanden van maximaal 2.000.000 bytes per bestand of plak maximaal 2.000.000 UTF-16-code-eenheden per invoer. Elke invoer is ook beperkt tot 20.000 gegevensrijen, 200 kolommen en 250.000 cellen inclusief de kopregel. Er is geen coderingsdetectie, benaderende vergelijking of automatische samenvoeging van schema’s. Gebruik bij het bereiken van een limiet een kleinere export met een consistente afbakening.

De vergelijker bewaart de invoer in het paginageheugen, doet geen netwerkverzoeken en schrijft niets naar browseropslag. De website zelf laadt nog wel code en bestanden; optionele webanalyse kan met toestemming worden uitgevoerd. Wissen / annuleren verwijdert de huidige invoer en resultaten en annuleert het lezen van een bestand dat nog bezig is. Het verwijdert geen bronbestanden of gedownloade rapporten, die privégegevens kunnen bevatten. Er wordt geen CSV-rapport gemaakt; plak later geen onbetrouwbare waarden in een spreadsheet zonder de risico’s van formules te beoordelen.

Verdergaan met de juiste weergave

Gebruik de CSV-verkenner, om één export te bekijken. Gebruik de tekst- en JSON-vergelijker, als het om regelvolgorde of JSON-structuur gaat. Ga terug naar de CSV-vergelijking op sleutel, als stabiele recordidentiteit belangrijk is.