fixmint
NO

Rense en rotete CSV-eksport: problemene å sjekke, i rekkefølge

Av · · 5 min lesing

For å rense en rotete CSV-eksport fikser du den i lag: tegnene først, deretter oppsettet, og til slutt hva hver kolonne betyr. En CSV er ren tekst, så de fleste problemene skyldes feil tegn, ekstra rader eller skilletegn, eller verdier som et program leser annerledes enn deg. Fiks tegnene først. Et skjult mellomrom kan gjøre at en dato ikke blir lest som dato, og da feiler de senere rettingene uten en tydelig grunn.

CSV-rensingRotete CSV med tomme og doble raderGjør det gratis

Tegn som ser riktige ut, men ikke er det

Ekstra mellomrom. Et mellomrom i starten eller slutten av en celle, eller to mellomrom midt i en verdi, gjør at «Berlin » og «Berlin» blir to ulike verdier for et oppslag, et filter eller en sammenkobling.

Usynlige tegn. Noen tegn tar ingen plass på skjermen:

  • Et hardt mellomrom (U+00A0) ser ut som et vanlig mellomrom, men er et annet tegn. Nettsider bruker det for å holde ord sammen.
  • Et null-bredde mellomrom (U+200B) har ingen bredde i det hele tatt.
  • Et byterekkefølgemerke (BOM, U+FEFF) kan sitte helt i starten av en fil, foran den første overskriften. Kolonnen ser ut som «id», men er egentlig «id», så et oppslag etter «id» feiler.

Fjern skjulte tegn viser hva den finner før den endrer noe.

Ødelagte bokstaver. «Ã©» der du forventer «é» er et kodingsproblem som kalles mojibake. Filen ble lagret som UTF-8, der é tar to byte, og deretter lest som Windows-1252, der de to bytene blir to helt urelaterte bokstaver. En apostrof «’» blir på samme måte til «â€™». Løsningen er å lese filen som UTF-8, eller å eksportere den på nytt fra kilden med UTF-8 valgt. Å reparere tekst som allerede er lagret feil er skjørt, så behold originalen og arbeid på en kopi.

Oppsett: tittelrader, tomme linjer og duplikater

Rapporter starter ofte med en tittel, en dato og en tom linje over den egentlige overskriftsraden. Slett alt over overskriftsraden, slik at første linje inneholder kolonnenavnene. Hver kolonne trenger ett navn, og ingen navn bør være tomme.

Hver rad bør ha samme antall felt. Et løst komma inne i en verdi som ikke står i anførselstegn, legger til et felt, og alle verdier etter det flytter seg én kolonne til høyre. Tell feltene per rad. En rad med et annet antall er ødelagt.

Duplikater finnes i to varianter. Rader som er identiske i hver kolonne, kommer vanligvis av at man eksporterer eller limer inn to ganger, og de kan trygt fjernes. Rader som deler en nøkkel, men er ulike ellers, kan være oppdateringer. Hvis du sletter feil rad, kan du fjerne den nyeste versjonen, så sjekk dem først.

Datoer: 03/04/2026 kan være to ulike dager

03/04/2026 er 3. april i ett land og 4. mars i et annet, og teksten sier ikke hvilket. Se på de andre datoene i samme kolonne. Hvis noen første tall er over 12, er kolonnen dag først. Hvis noen andre tall er over 12, er den måned først. Hvis alle verdiene har begge tallene på 12 eller lavere, kan ikke filen si det, og da må du spørre kildesystemet. Datatypesjekkeren markerer slike kolonner som tvetydige i stedet for å gjette.

Når du kjenner rekkefølgen, konverterer du hver dato til ISO 8601, formatet år-måned-dag, for eksempel 2026-04-03. Det er entydig, og det sorterer riktig som tekst. Konverter blandede formater ett og ett, fordi de fleste programmer vil lese en kolonne med begge stilene ujevnt.

Tall lagret som tekst

Et tall er lagret som tekst når det har et valutategn, et prosenttegn eller et mellomrom inni seg, for eksempel «€ 12», «45%» eller «1 234» med et hardt mellomrom. Tusenskilletegn, som i «1,234.50», får ofte et program til å lese verdien som tekst også. Et regneark viser tekstlige tall justert til venstre, og summer hopper over dem.

Desimalkomma er fellen. I «1.234,50» er kommaet desimaltegnet, og punktumet grupperer tusenene. I «1,234.50» er det omvendt. Så «1,234» kan være 1234 i én eksport og 1.234 i en annen. Finn språkinnstillingen til kilden før du konverterer, og fjern deretter tusenskilletegnene og gjør desimalkommaet om til et punktum.

Innledende nuller forsvinner

Postnummer, produktkoder og kontonumre starter ofte med nuller. Når en CSV åpnes i et regneark, leses «01234» som tallet 1234, og nullene er borte. Å lagre filen beholder tapet, så kildesystemet er den eneste pålitelige kopien.

En identifikator er tekst, selv når den ser ut som et tall, fordi du aldri regner med den. Slå av tallkonvertering for slike kolonner når du renser CSV-filen, og åpne filen på nytt fra kilden i stedet for fra en kopi et regneark har lagret. Sjekk datatypen til hver kolonne etterpå, så en postnummerkolonne ikke stille og rolig blir til tall igjen. Excel kan også endre verdier når den åpner en CSV, så kontroller resultatet i en ren tekstvisning.

Sjekk datatypene, og profiler deretter

Etter rensingen sjekker du datatypen til hver kolonne. Ett enkelt «N/A» i en kolonne med priser gjør hele kolonnen til tekst, og summen blir da feil. Datatypesjekkeren gir hver kolonne en type og en tillitsscore, og lister cellene som ikke passer.

Profiler deretter kolonnene. CSV-kolonneprofileringen viser hull og avvik i hver kolonne. Et avvik kan være en reell verdi, eller en feil, for eksempel en pris som er tusen ganger større enn de andre, noe som ofte kommer av en feilplassert desimal eller et feilplassert skilletegn.

Spesialtilfeller

  • Linjeskift inni anførselstegn. En sitert verdi kan inneholde et linjeskift. Et verktøy som deler filen etter linjer, deler da raden i to, så bruk en leser som forstår siterte felt.
  • Filer med semikolon. Mange europeiske regneark lagrer CSV med semikolon, fordi kommaet er desimaltegnet i deres språkinnstilling. Sjekk skilletegnet før du leser kolonnene.
  • Behold originalen. Skriv det rensede resultatet til en ny fil, og behold eksporten slik den kom.

Rekkefølgen, som sjekkliste

  1. Ta en kopi av den opprinnelige eksporten.
  2. Fjern ekstra mellomrom og usynlige tegn. Fiks ødelagte bokstaver ved kilden hvis du kan.
  3. Slett tittelradene, kontroller kolonnenavnene, og bekreft at hver rad har samme antall felt.
  4. Finn duplikatene, og bestem hvilken versjon du skal beholde.
  5. Konverter datoer til år-måned-dag, fjern skilletegn, og gjør identifikatorer til tekst.
  6. Sjekk datatypen til hver kolonne, og profiler den deretter for hull og avvik.

Raske svar

Hvorfor feiler oppslaget mitt når verdiene ser like ut?

Vanligvis ligger et mellomrom, et hardt mellomrom eller et byterekkefølgemerke i en av cellene. Fjern de skjulte tegnene og prøv igjen.

Hvorfor endrer datoene mine seg til noe annet?

Et program leste en dato med dag først eller måned først i feil rekkefølge, eller det konverterte teksten til sitt eget datoformat. Konverter datoene selv først, til år-måned-dag.

Oversatt fra Engelsk original med KI-hjelp.

Kommentarer

    Ingen kommentarer ennå. Bli den første.

    Vurderingen din (valgfritt)

    E-posten din vises aldri og lagres ikke.

    Omslag til Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Hvorfor offentlige, gratis og åpne datasett vil forme kunstig generell intelligens like mye som algoritmer og regnekraft gjør.

    $4.99Kjøp på GumroadPå engelsk