Power Query

Slå sammen flere Excel-filer automatisk med Power Query

Kort svar

Legg filene i én mappe og bruk Data, Hent data, Fra fil og Fra mappe i Power Query. Du rydder én av filene som eksempel, og Power Query gjentar akkurat de stegene på alle de andre - også på filer du legger i mappen senere. Neste måned legger du den nye filen i mappen og trykker Oppdater alle. Filene må ha samme kolonnenavn, men trenger verken samme rekkefølge eller samme antall rader.

Én fil per måned, per butikk eller per avdeling – og en gang i måneden sitter noen og kopierer dem inn under hverandre. Det er den jobben denne metoden fjerner, permanent.

Kravet: filene må ligne på hverandre

Power Query gjør ikke magi. Metoden forutsetter at filene har samme kolonnenavn. Alt annet er fleksibelt:

Kan variere Må stemme
Rekkefølgen på kolonnene Kolonnenavnene
Antall rader Hvilket ark dataene ligger i
Antall filer At dataene starter på samme sted i arket
Filnavnene

Er kolonnen Beløp i noen filer og Sum i andre, får du to kolonner med hull i begge. Det er løsbart, men lettest hvis du vet det på forhånd – se avsnittet om avvikende filer.

Steg for steg

1. Samle filene i én mappe

Bare filene som skal med. Ingen gamle versjoner, ingen Kopi av, ingen personlige utkast. Alt som ligger i mappen blir lest.

2. Hent mappen

Data → Hent data → Fra fil → Fra mappe. Velg mappen. Du får en oversikt over filene – ikke over innholdet ennå.

3. Klikk Transformer data, ikke Kombiner

Dette er stedet folk går feil. Kombiner og last inn virker fint helt til én fil er annerledes, og da har du ingen kontroll over hva som skjedde.

Klikk Transformer data. Nå ser du en tabell med én rad per fil: navn, utvidelse, dato, mappesti og en Content-kolonne.

4. Filtrer bort det som ikke skal med

Her, før noe som helst annet:

  • Filtrer Extension til .xlsx – det fjerner låsefiler og annet rusk.
  • Filtrer bort filnavn som begynner med ~$. Det er Excels midlertidige filer fra åpne dokumenter, og de gir en feil hvis de kommer med.
  • Er det undermapper du ikke vil ha, filtrer på Folder Path.

Å legge disse filtrene inn nå sparer deg for feilsøking senere.

5. Kombiner

Klikk ikonet med to piler ned øverst i Content-kolonnen. Du får en forhåndsvisning der du velger hvilket ark eller hvilken tabell som skal hentes fra hver fil. Velg arket, og klikk OK.

Power Query lager nå fire ting i venstremargen:

Objekt Hva den gjør
Eksempelfil Peker på den første filen, brukes som mal
Transformer fil (funksjon) Stegene som kjøres på hver fil
Transformer eksempelfil Der du faktisk redigerer stegene
Hovedspørringen Kaller funksjonen for hver rad og stabler resultatet

6. Rydd i eksempelfilen – ikke i resultatet

Dette er hele nøkkelen. Klikk på Transformer eksempelfil og gjør oppryddingen der:

  • Bruk første rad som overskrifter.
  • Fjern tomme rader og delsummer.
  • Fjern kolonner du ikke trenger. Gjør det tidlig – det gjør alt etterpå raskere.
  • Sett datatyper, gjerne Endre type → Med lokalinnstilling på datoer.
  • Trim nøkkelkolonner.

Hvert steg du gjør her, gjøres på alle filene. Også på filene du legger i mappen om et halvt år.

7. Behold Source.Name

Hovedspørringen får en kolonne Source.Name med filnavnet. Ikke slett den.

Når totalen ikke stemmer neste kvartal, er dette den eneste kolonnen som lar deg gruppere per fil og se hvilken av dem som mangler eller teller dobbelt. Kommer perioden fram av filnavnet, kan du også hente ut måneden fra den med Del kolonne.

8. Last inn

Lukk og last inn til → tabell i et nytt ark, eller rett til en pivottabell. Er det mer enn noen hundre tusen rader, last til datamodellen i stedet.

Neste måned: legg den nye filen i mappen, trykk Oppdater alle. Det er hele rutinen.

Når filene ikke er helt like

Ulike kolonnenavn. Legg inn et Gi nytt navn-steg i eksempelfilen. Men gjør det robust: bruk Velg kolonner i stedet for Fjern kolonner, så knekker ikke spørringen når en kilde får et nytt felt.

Overskriften starter på ulik rad. Filtrer bort rader over overskriften på innhold i stedet for på posisjon. Et vanlig triks er å fjerne rader der nøkkelkolonnen er tom, før du forfremmer overskriftene.

Ark med ulikt navn i hver fil. Da kan du ikke velge arket ved navn. I eksempelfilen filtrerer du i stedet på Kind = Sheet og tar den første raden, eller på at arknavnet begynner med noe bestemt.

Én fil er tom. Den gir en feil som stopper hele spørringen. Legg inn et filter på Size større enn null i filoversikten.

Filene er .xls. Det gamle formatet leses ikke av alle Power Query-versjoner. Lagre dem om til .xlsx, eller be om at eksporten endres.

Ikke rediger «Transformer fil»-funksjonen direkte. Den er generert kode. Alt du trenger å endre, endrer du i Transformer eksempelfil – funksjonen oppdateres automatisk. Redigerer du funksjonen for hånd, mister du koblingen og må gjøre alt på nytt neste gang noe endrer seg.

Kontroller resultatet før du stoler på det

Tre kontroller, hver gang du setter opp en ny mappeimport:

  1. Antall filer. Grupper på Source.Name og tell. Er det 12 filer i mappen, skal det være 12 grupper.
  2. Radantall mot kilden. Åpne én av kildefilene og tell radene der. De skal stemme med gruppen for den filen.
  3. Sum av beløpskolonnen mot summen i kildefilene. Avvik her betyr som regel at tall er kommet inn som tekst i én av filene – da får du null i stedet for beløp. Se Excel summerer ikke.

Disse tre tar to minutter og fanger opp nesten alt som kan gå galt.

Hardkodet filsti er den vanligste fellen

C:\Users\ditt-navn\Documents\Salg virker ikke hos noen andre. Skal filen deles, gjør du mappestien til en parameter:

  1. Hjem → Behandle parametere → Ny parameter, type Tekst.
  2. Sett verdien til mappestien.
  3. I kildesteget bytter du ut den hardkodede stien med parameteren.

Da endrer neste person bare parameteren, i stedet for å redigere M-koden. Enda bedre: legg mappen på en delt plassering alle bruker samme sti til.

Når du ikke skal bruke denne metoden

  • Filene har helt ulik struktur. Da er det ikke én import, det er fem – og de skal tilføyes hverandre etterpå. Se flette eller legge til.
  • Du skal hente noen felter inn i en eksisterende tabell. Det er en sammenslåing, ikke en stabling.
  • Det er to filer, én gang. Da er kopier og lim raskere enn å sette opp dette. Se slå sammen to Excel-ark.
  • Filene ligger i hver sin mappe hos hver sin person. Løs det problemet først. En importrutine gjør ikke opp for at det ikke finnes ett sted dataene hører hjemme.

Neste steg

Er filene først samlet i én tabell som oppdaterer seg selv, er du halvveis til en rapport som gjør det samme. Se automatisk månedsrapport i Excel for hvordan resten av rutinen settes opp, og Power Query i Excel hvis du vil ha grunnlaget i verktøyet på plass først.

Vanlige spørsmål

Må filene ha nøyaktig samme kolonner?

De må ha samme kolonnenavn, men rekkefølgen spiller ingen rolle – Power Query matcher på navn. Har én fil en kolonne de andre mangler, får du kolonnen med tomme celler for de øvrige filene. Det er som regel greit, og lett å se.

Hva skjer med filer jeg legger i mappen senere?

De kommer med automatisk neste gang du oppdaterer. Det er hele poenget med metoden. Vær derfor disiplinert med hva som får ligge i mappen – en gammel versjon eller en personlig kopi blir også lest inn.

Kan jeg hente filer fra SharePoint eller OneDrive?

Ja. Bruk Fra fil og Fra SharePoint-mappe med adressen til nettstedet, ikke til dokumentbiblioteket. En synkronisert OneDrive-mappe kan også leses som en vanlig mappe på disken, men da virker spørringen bare på din maskin.

Hvordan vet jeg hvilken fil en rad kom fra?

Behold kolonnen Source.Name som Power Query legger inn automatisk. Ikke slett den – den er den eneste måten å spore en rad tilbake til kilden når totalen ikke stemmer.

Hva om filene har flere ark hver?

Da bør du ikke bruke Kombiner-knappen direkte. Filtrer på arknavn eller på typen objekt i eksempelspørringen først, slik at bare det arket du er ute etter blir hentet fra hver fil. Ellers stables alle arkene sammen.

Virker dette med CSV-filer?

Ja, og det går som regel raskere enn med Excel-filer. Pass på tegnsett og skilletegn i eksempelspørringen – er filene laget i et system som bruker semikolon og ISO-8859-1, må det settes eksplisitt.

Hvorfor blir spørringen så treg med mange filer?

Fordi hver fil åpnes og leses i sin helhet. Filtrer bort rader og kolonner så tidlig som mulig i eksempelspørringen – da gjøres oppryddingen på mindre data i alle filene. Å ha 300 filer på en nettverksdisk er også langsommere enn 300 filer lokalt.