Innhold

Noen ganger er det situasjoner hvor det ikke er kjent på forhånd nøyaktig hvor mange og hvilke rader som må importeres fra kildedataene. Anta at vi må laste inn data fra en tekstfil til Power Query, som ved første øyekast ikke utgjør et stort problem. Vanskeligheten er at filen oppdateres jevnlig, og i morgen kan den ha et annet antall linjer med data, en overskrift på tre, ikke to linjer, osv.:

Importere et flytende fragment i Power Query

Det vil si at vi ikke kan si på forhånd med sikkerhet, med utgangspunkt i hvilken linje og nøyaktig hvor mange linjer som må importeres. Og dette er et problem, fordi disse parameterne er hardkodet i M-koden til forespørselen. Og hvis du gjør en forespørsel om den første filen (importerer 5 linjer fra den fjerde), vil den ikke lenger fungere riktig med den andre.

Det ville være flott om spørringen vår selv kunne bestemme begynnelsen og slutten av den "flytende" tekstblokken for import.

Løsningen jeg vil foreslå er basert på ideen om at dataene våre inneholder noen nøkkelord eller verdier som kan brukes som markører (funksjoner) for begynnelsen og slutten av datablokken vi trenger. I vårt eksempel vil begynnelsen være en linje som begynner med ordet SKU, og slutten er en linje med ordet Totalt. Denne radvalideringen er enkel å implementere i Power Query ved å bruke en betinget kolonne – en analog av funksjonen IF (HVIS) i Microsoft Excel.

La oss se hvordan vi gjør det.

Først, la oss laste inn innholdet i tekstfilen vår i Power Query på standard måte – gjennom kommandoen Data – Hent data – Fra fil – Fra tekst/CSV-fil (Data – Hent data – Fra fil – Fra tekst/CSV-fil). Hvis du har Power Query installert som et separat tillegg, vil de tilsvarende kommandoene være på fanen Strømforespørsel:

Importere et flytende fragment i Power Query

Som alltid, når du importerer, kan du velge kolonneseparatortegnet (i vårt tilfelle er dette en fane), og etter import kan du fjerne trinnet automatisk lagt til modifisert type (Endret type), fordi det er for tidlig for oss å tilordne datatyper til kolonner:

Importere et flytende fragment i Power Query

Nå med kommandoen Legge til en kolonne – Betinget kolonne (Legg til kolonne – betinget kolonne)la oss legge til en kolonne med kontroll av to betingelser – på begynnelsen og slutten av blokken – og vise ulike verdier i hvert tilfelle (for eksempel tall 1 и 2). Hvis ingen av betingelsene er oppfylt, utdata null:

Importere et flytende fragment i Power Query

Etter å ha klikket på OK vi får følgende bilde:

Importere et flytende fragment i Power Query

La oss nå gå til fanen. Transformation og velg et lag Fyll – ned (Transformer – Fyll – Ned) – våre enere og toere vil strekke seg nedover kolonnen:

Importere et flytende fragment i Power Query

Vel, da, som du kanskje gjetter, kan du ganske enkelt filtrere enhetene i den betingede kolonnen – og her er vår ettertraktede data:

Importere et flytende fragment i Power Query

Alt som gjenstår er å heve den første linjen til overskriften med kommandoen Bruk første linje som overskrifter tab Hjemprodukt (Hjem – Bruk første rad som overskrifter) og fjern den unødvendige mer betingede kolonnen ved å høyreklikke på overskriften og velge kommandoen Slett kolonne (Slett kolonne):

Problem løst. Nå, når du endrer dataene i kildetekstfilen, vil spørringen nå uavhengig bestemme begynnelsen og slutten av det "flytende" fragmentet av dataene vi trenger og importere riktig antall linjer hver gang. Selvfølgelig fungerer denne tilnærmingen også ved import av XLSX, ikke TXT-filer, så vel som når du importerer alle filer fra en mappe samtidig med kommandoen Data – Hent data – Fra fil – Fra mappe (Data — Hent Data — Fra fil — Fra mappe).

  • Sette sammen tabeller fra forskjellige filer ved hjelp av Power Query
  • Redesigner en krysstabell til flat med makroer og Power Query
  • Bygge et Project Gantt-diagram i Power Query

Legg igjen en kommentar