Power Query – inledande nollor i Excel från csv-fil

Ett återkommande ämne i vår Excelsupport är hantering av csv-filer där det finns kolumner bestående av värden med inledande nollor och hur man kan få in dessa till Excel. Det kan t.ex. vara telefonnummer eller artikelnummer som helt eller delvis inleds med en eller flera nollor.

Problemet med inledande nollor i textfiler

Ok, vad är problemet?

Jo, om du har värden i en csv-fil som inleds med nollor, kommer dessa nollor att försvinna om du öppnar filen direkt med Excel. Detta känner du kanske igen om du hanterat csv-filer. Exempelfilen som vi jobbar med ser ut på följande vis när den visas i en texteditor (t.ex. Anteckningar eller Notpad++):

(du kan ladda ner csv-filen här och testa själv)

Du ser tydligt att alla telefonnummer och några av artikelnumren innehåller inledande nollor. Öppnar du csv-filen i Excel, så visar Excel följande:

😤 Excel tycker cellerna ska vara numeriska värden och plockar helt enkelt bort nollorna. (Stäng nu filen utan att spara om du vill fortsätta hänga med…sparar du kommer du nämligen fysiskt ta bort nollorna även i csv-filen).

Power Query löser problemet med inledande nollor i Excel

Nu ska vi se vad som händer om du försöker hämta in csv-filen till Excel med hjälp av Power Query 😁. Börja med en tom Excelfil. Gå till menyfliken Data [Data] och klicka på knappen Från text/CSV [From text/CSV].

Leta upp csv-filen som du vill hämta data från.

I detta läge tänker många ”NEJ!!! Det funkar inte med Power Query heller”. Det ser ju uppenbarligen inte bra ut. Men du fortsätter genom att klicka på Transformera data [Transform Data], vilket tar dig in i Power Query-redigeraren.

Även inne i Power Query ser det ”mörkt ut”. I detta läge tänker många igen ”NEJ!!! Det funkar inte med Power Query heller”.

Anledningen ser du i formelfältet. Även Power Query tycker att fälten Telefonnummer och Köpt artikel borde vara ”heltal” d v s Int64 Type. Då omvandlas det underliggande värdet till heltal, vilket vi absolut inte vill.

Tips! Om du inte ser formelfältet klickar du på menyfliken Visa [View] och kryssar i kryssrutan för Formelfält [Formula Bar].

Två lösningar i Power Query

Du kan göra på några olika sätt för att lösa problemet:

  1. Markera den kolumn du vill ändra datatyp för. Klicka på ikonen för datatyp och ändra till Text och välj Byt ut aktuell i dialogrutan som dyker upp.
    ändra datatyp power query
  2. Ändra manuellt genom att ersätta Int64 Type med type text för dessa två kolumner. Klart 😁
  3. Vill du inte ”hacka” i formelfältet kan du istället ta bort det sista frågesteget genom att klicka på det röda krysset för raden Ändrad typ [Changed Type].

    Nackdelen är då att du behöver sätta datatypen manuellt för alla kolumner. Oftast inget stort problem och kanske kan kännas tryggast om man inte jobbat i Power Query tidigare. Just i vårt fall behöver vi inte ändra datatyperna, men har man många kolumner kan det bli en del klickade och då är punkt 1 ovan lite snabbare.

Slutligen går du till menyfliken Start [Home] och klickar på knappen Stäng och läs in [Close & Load] för att skjuta över dina data till Excel.

Resultatet snyggt och prydligt i en Exceltabell 😉.

PS. Power Query är det nya sättet att automatisera och effektivisera i Excel. Fördelen är att det räcker att du är en vanlig Excelanvändare och du behöver inte kunna programmera för att dra en massa fördelar med verktyget som från version 2016 är helt inbyggt i Excel.

Läs om vår populära lärarledda tvådagarskurs i Power Query / Power Pivot här (ges även på distans). I den lärarledda kursen ingår även e-kurser och två rejäla kursböcker.

Power Query finns även som en omfattande e-kurs – läs mer om e-kursen här.

Kontakta oss på utbildning@infocell.se eller 0522-506007 om ni är intresserade av anpassade utbildningar för en personalgrupp.

Du gillar kanske också...

2 svar

  1. Hans Söderba skriver:

    Hej
    Ett bra tips., tack!
    En fråga
    Nummer med extra space efter decimalen, Hur tar man bort spacet för att få 123,45 till ett nummer
    Exempel 123, 45

    • Tobias Ljung skriver:

      Hej Hans!
      I Power Query: I menyfliken Transformera klickar du på knappen Ersätt värden. I fältet för ”Värde att söka efter” fyller du i ett mellanslag och ersätter med ingenting.
      Mvh,
      Tobias Ljung