En egendefinert funksjon bruker M-formelspråket, tar et sett med inndataverdier og returnerer deretter en enkelt utdataverdi. Hvis du har logikk som du vil bruke på nytt mange ganger eller bruke det samme settet med transformasjoner på en annen spørring eller verdi, bør du vurdere å opprette en egendefinert funksjon og deretter aktivere funksjonen der og når du trenger den. Det finnes flere måter å opprette en egendefinert funksjon på:
-
Bruk avansert redigering til å legge til din egen let-setning og starte fra grunnen av.
-
Bruk kommandoen Aktiver egendefinert funksjon .
-
Det finnes flere måter å opprette funksjoner som ikke er beskrevet i dette hjelpeemnet, inkludert kommandoene Opprett funksjon og Legg til som en spørring . Hvis du vil ha en grundig diskusjon, kan du se Forstå Power Query M-funksjoner (docs.com)og Bruke egendefinerte funksjoner (docs.com).
Følgende er et enkelt eksempel på en egendefinert funksjon som følger en langvarig programmeringstradisjon.
-
Slik oppretter du en tom spørring:
Velg data > Hent data > fra andre kilder > tom spørring. Power Query høyreklikker du på et tomt sted i Spørringer-ruten til venstre, og deretter velger du Ny spørring > Andre kilder > tom spørring. -
Dobbeltklikk på navnet i Spørringer-ruten til venstre, og gi deretter den nye tomme spørringen nytt navn til «HelloWorld».
-
Velg den nye spørringen, og velg deretter Hjem > avansert redigering.
-
Erstatt malstartkoden med følgende kode:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Velg Ferdig.
-
Du har endret spørringen HelloWorld til en egendefinert funksjon. Legg merke til funksjonsikonet
til venstre for det. -
Hvis du vil aktivere funksjonen, merker du den og velger Aktiver i forhåndsvisning av data.
-
Resultatene av funksjonen vises i forhåndsvisning av data og legges til i Spørringer-ruten som en spørring med standardnavnet Invoked Function. Det kan hende du vil gi det et mer meningsfylt navn, for eksempel HelloWorldResult.
-
Velg denne spørringen, og velg deretter Hjem > Lukk & Last inn for å se resultatene i et regneark.
Resultater
Følgende eksempel viser hvordan du sender en parameter til en egendefinert funksjon for å konvertere et desimaltall til et heksadesimalt tall.
-
Slik oppretter du en tom spørring:
Velg data > Hent data > fra andre kilder > tom spørring. Power Query høyreklikker du på et tomt sted i Spørringer-ruten til venstre, og deretter velger du Ny spørring > Andre kilder > tom spørring. -
Gi nytt navn til den nye tomme spørringen i Spørringer-ruten til venstre til «MyHex».
-
Velg den nye spørringen, og velg deretter Hjem > avansert redigering.
-
Erstatt malstartkoden med følgende kode:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Velg Ferdig.
-
Du har endret spørringen MyHex til en egendefinert funksjon. Legg merke til funksjonsikonet
til venstre for det. -
Hvis du vil aktivere funksjonen, merker du den og skriver inn et tall i parameter1-boksen i Forhåndsvisning av data, og velger Aktiver.
-
Resultatene av funksjonen vises i forhåndsvisning av data og legges til i Spørringer-ruten som en spørring med standardnavnet Invoked Function. Det kan være lurt å gi det et mer meningsfylt navn, for eksempel «MyHexResult».
-
Velg denne spørringen, og velg deretter Hjem > Lukk & Last inn for å se resultatene i et regneark.
Resultater
Hvis du har opprettet en funksjon med minst én parameter, kan du aktivere den som en egendefinert funksjon for å opprette en ny kolonne og en ny verdi for hver rad i en tabell.
-
Hvis du vil åpne en spørring, finner du en som tidligere er lastet inn fra Power Query-redigering, merker en celle i dataene og velger deretter Spørring > Rediger. Hvis du vil ha mer informasjon, kan du se Opprette, redigere og laste inn en spørring i Excel (Power Query). Notat I dette eksemplet trenger spørringen minst én kolonne med datatypen Heltall .
-
Opprett den egendefinerte funksjonen MyHex, som forklart i inndelingen, opprett og aktiver en egendefinert funksjon som har en parameter med avansert redigering.
-
Velg Legg til kolonne > Aktiver egendefinert funksjon i spørringen. Dialogboksen Aktiver egendefinert funksjon vises.
-
Skriv inn det nye kolonnenavnet, for eksempel HexConvert, i boksen Nytt kolonnenavn .
-
Velg navnet på en forhåndsdefinert egendefinert funksjon fra rullegardinlisten funksjonsspørring. I dette eksemplet velger du «MyHex».
-
Fordi den egendefinerte funksjonen refererer til en parameter, vises parameteren nå.
-
Velg en kolonne med datatypen Heltall som en parameter for funksjonen.
-
Velg OK.
Resultat
Det opprettes en ny kolonne som viser den heksadesimale verdien for Heltall-kolonnen du skrev inn som en parameter.
Se også
Hjelp for Microsoft Power Query for Excel
Opprett Power Query-formler i Excel