Ny bog om Power Query!
Hvis du er interesseret i at lære mere om Power Query, så er der en bog på vej inden længe.
Idet Power Query registrerer transformations trinnene, indeholder det mange hardkodede værdier i M-koden. Hvis vi for eksempel filtrerer en kolonne for at vælge alle værdier over 50, vil 50 være en hardkodet værdi i M-koden. Eller hvis vi importerer en CSV-fil, er filstien hardkodet i forespørgslen.
Hvad hvis vi vil ændre disse værdier eller filstier? Naturligvis kunne vi redigere forespørgslen hver gang, hvilket ville være meget tidskrævende. Eller vi kunne oprette parametre.
Udtrykket “Parameter” kan være lidt forvirrende. Vi bruger udtrykket variabel, når vi programmerer i VBA, eller måske betingelser, kriterier eller argumenter, når vi laver Excel-formler, dette er alle de samme ting. Parametre, variabler, betingelser, kriterier og argumenter er alle værdier, vi kan ændre for at få et andet output. Microsoft besluttede at bruge udtrykket Parameter da de designede Power Query.
I denne artikel bruger jeg celleværdier som parametre; Derfor kan vi ved at ændre celleværdien ændre resultatet af en forespørgsel. Parameteren kan være indeholdt i en CSV-fil eller som en databaseindstilling. Men vi fokuserer på den situation, du mest sandsynligt vil støde på, som er en celleværdi.
Da Power Query blev udviklet, introduceres nye og funktioner der var lettere at bruge. Parametre er en af de udviklede funktioner. Metoden, jeg vil vise dig, tror jeg, i øjeblikket er den nemmeste og bedste at implementere.
Jeg anbefaler du downloader filen nedenfor, hvis du vil følge opgave.
Opret forespørgslen
Det første trin er at oprette en forespørgsel som normalt. Som bemærket ovenfor, vil alle trinene være hardkodet
1. Vælg en hvilken som helst celle i kildetabellen, og vælg Data -> Fra tabel i båndet.
2. Power Query editoren åbnes. Foretag følgende transformationer
Kolonnen Dato
3. Klik på ikonet Dato og tid ved siden af overskriften Dato, vælg Dato i menuen.
4. Vælg kolonneoverskriften Dato, og klik derefter på Transform -> Dato -> Måned -> Månedens slutning.
5. Filtrer kolonnen Dato til kun at omfatte 31. januar 2019. Datoformatet kan se forskellig ud, afhængigt af dine indstillinger.
6. Sørg for, at kolonnen Dato stadig er valgt, og klik derefter på Hjem -> Fjern kolonner
Kolonnen Solgt af
- Klik på filterikonet i kolonnen Solgt af og sikre dig, at kun David er valgt.
- Sørg for kolonnen Solgt af stadig er valgt, vælg Hjem -> Fjern kolonner.
- Det er nok transformationer for nu. Klik på Hjem -> Luk og indlæs.
Tabellen skal se sådan ud:
Fra kildedataene oprettede vi en tabel, der viser de produkter, der er solgt af David i januar 2019. Men hvad nu hvis vi vil have de produkter, der sælges af Sally i marts 2019, eller Mark i marts 2019? Det er her parametrene kommer ind. I det næste afsnit opretter vi nogle parametre til dynamisk ændring af navn og dato.
Opret parametrene
Den korte forklaring er at en parameter blot er en normal forespørgsel, hvor vi borer ned i selve værdien og indlæser den som en forbindelse.
I dette eksempel bruger vi en Excel tabel som kilde, men den kan ligeledes være i det navngivne område, CSV eller en hvilken som helst anden datakilde, vi kan få ind i Power Query.
1. I regnearket der indeholder forespørgselsstabellen oprettes to tabeller med enkeltværdier i:
2. Efter oprettelse af hver tabel har jeg omdøbt dem.
3. Den første tabel har jeg navngivet Dato og den anden SolgtAf.
Oprettelse af en tekstparameter
1. Først opretter vi parameteren til ændring af navn.
2. Vælg cellen i tabellen SolgtAf og opret en forespørgsel ved at klikke på Data -> Fra tabel.
Vær opmærksom på datatypen. Kolonnen Solgt af i den originale forespørgsel ovenfor er en tekst datatype, og datatypen i denne forespørgsel er også tekst. Vi har brug for, at disse er identiske.
3. Højre klik på Power Query på værdien og vælg Analyser ned i menuen.
4. Vinduet ændres til en visning, vi ikke har set før, vinduet Tekstværktøjer:
5. Skriv en note om forespørgselsnavnet, som er SolgtAf (ingen mellerum), som vist på skærmbilledet ovenfor.
6. Klik på Filer -> Luk og indlæs til.
7. Vælg Opret kun forbindelse i vinduet Importer data, og klik derefter på OK.
8. Menuen Forespørgsler og forbindelse viser nu to forespørgsler, de originale data, kaldet Salgsdata, og tekstparameteren kaldet SolgtAf.
Oprettelse af dato parameteren
OK, lad os gennemgå de samme trin igen for parameteren Dato. Sammenlignet med den tekstparameter, vi oprettede ovenfor, er der yderligere et trin. I den originale forespørgsel havde kolonnen Dato en dato datatype på det tidspunktpunkt, hvor den blev filtreret, derfor har vi brug for en datatype for parameteren.
1. Efter at have ændret kolonnen Dato til en datotype, skal du højre klikke på værdien og klikke på Analyser ned.
2. Gør et notat af forespørgselsnavnet, som er Dato i dette scenarie.
3. Som tidligere skal du klikke på Luk & Indlæs til … vælg derefter Opret kun forbindelse, og klik på OK.
4. Vi skal nu oprette to parametre, SolgtAf som en teksttype og Dato som en datotype.
Indsæt parametrene i forespørgslen
Efter at have oprettet parametrene, lad os bruge dem. For at gøre dette vil vi foretage nogle grundlæggende ændringer af M-koden. Vi kunne bruge Advanced Editor eller formelbjælken. For at holde tingene enkle bruger jeg formelbjælken til dette eksempel.
Vigtig information: M-kode er store og små bogstaver (SoldBy og soldby er ikke ens).
1. Åbn den originale forespørgsel (Salgs data forespørgslen i vores eksempel).
2. Hvis formellinjen ikke er synlig, skal du klikke på Vis -> Formellinje.
3. Find det trin, hvor vi hardkodede værdien Lars.
4. Udskift “Lars” for parameteren SolgtAf.
= Table.SelectRows(#"Fjernede kolonner", each ([Salgt af] = "Lars"))
bliver til:
= Table.SelectRows(#"Fjernede kolonner", each ([Salgt af] = SolgtAf))
5. Dernæst anvender vi parameteren Dato. Find det trin, hvor vi hardkodede 31. januar 2019 som dato.
6. Udskift #date(2019, 1, 31) med parameteren Dato.
= Table.SelectRows(#"Månedens beregnede slutning", each ([Dato] = #date(2019, 1, 31)))
bliver til
= Table.SelectRows(#"Månedens beregnede slutning", each ([Dato] = Dato))
7. Det er alt, hvad der er, vi har nu anvendt parametrene. Klik på Hjem -> Luk & indlæs for at indlæse ændringerne i Excel.
Brug af parameteren
Nu, hvor vi er tilbage i Excel, kan vi ændre dato og solgt af celleværdier og derefter klikke på Data -> Opdater alle.
Forespørgslen opdateres for at vise værdierne for de parametre, vi har valgt.
Du kan nu opsætte en hvilken som helst Power Query hardkodet værdi som en parameter. Her er nogle forslag over de mest nyttige ting man kan konfigurere som parametre:
- Filstier til import af eksterne datafiler
- Perioders slutdatoer til finansielle rapporter
- Navne på afdelinger eller omkostninger for at oprette rapporter til specifikke områder
- Eventuelle indstillinger, som en anden bruger sandsynligvis skal ændre