En brugerdefineret funktion bruger M-formelsproget, tager et sæt inputværdier og returnerer derefter en enkelt outputværdi. Hvis du har logik, som du vil genbruge mange gange eller anvende det samme sæt transformationer på en anden forespørgsel eller værdi, skal du overveje at oprette en brugerdefineret funktion og derefter aktivere funktionen, hvor og når du har brug for den. Du kan oprette en brugerdefineret funktion på flere måder:
-
Brug Avanceret editor til at tilføje din egen let-sætning og starte fra bunden.
-
Brug kommandoen Aktivér brugerdefineret funktion .
-
Der er flere måder at oprette funktioner, der ikke er beskrevet i dette emne i Hjælp, herunder kommandoerne Opret funktion og Tilføj som en forespørgsel . Du kan finde en dybdegående diskussion under Forstå Power Query M-funktioner (docs.com)og Brug af brugerdefinerede funktioner (docs.com).
Følgende er et simpelt eksempel på en brugerdefineret funktion, der følger en længevarende programmeringstradition.
-
Sådan opretter du en tom forespørgsel:
Excel Vælg data > Hent data > fra andre kilder > tom forespørgsel. Power Query Højreklik på et tomt sted i ruden Forespørgsler til venstre, og vælg derefter Ny forespørgsel > Andre kilder > Tom forespørgsel. -
Dobbeltklik på navnet i ruden Forespørgsler til venstre, og omdøb derefter den nye tomme forespørgsel til "HelloWorld".
-
Vælg den nye forespørgsel, og vælg derefter Hjem > Avanceret editor.
-
Erstat skabelonens startkode med følgende kode:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Vælg Udført.
-
Du har ændret forespørgslen "HelloWorld" til en brugerdefineret funktion. Bemærk funktionsikonet
til venstre for det. -
Hvis du vil aktivere funktionen, skal du markere den og derefter vælge Aktivér i Datavisning.
-
Resultaterne af funktionen vises i Datavisning og føjes til ruden Forespørgsler som en forespørgsel med standardnavnet , Aktiveret funktion. Det kan være en god ide at omdøbe den til noget mere sigende, f.eks. "HelloWorldResult".
-
Vælg denne forespørgsel, og vælg derefter Hjem > Luk & Indlæs for at se resultaterne i et regneark.
Resultater
I følgende eksempel vises det, hvordan du overfører en parameter til en brugerdefineret funktion for at konvertere et decimaltal til et hexadecimaltal.
-
Sådan opretter du en tom forespørgsel:
Excel Vælg data > Hent data > fra andre kilder > tom forespørgsel. Power Query Højreklik på et tomt sted i ruden Forespørgsler til venstre, og vælg derefter Ny forespørgsel > Andre kilder > Tom forespørgsel. -
I ruden Forespørgsler til venstre skal du omdøbe den nye tomme forespørgsel til "MyHex".
-
Vælg den nye forespørgsel, og vælg derefter Hjem > Avanceret editor.
-
Erstat skabelonens startkode med følgende kode:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Vælg Udført.
-
Du har ændret forespørgslen "MyHex" til en brugerdefineret funktion. Bemærk funktionsikonet
til venstre for det. -
Hvis du vil aktivere funktionen, skal du markere den og derefter angive et tal i feltet parameter1 i Datavisning og vælge Aktivér.
-
Resultaterne af funktionen vises i Datavisning og føjes til ruden Forespørgsler som en forespørgsel med standardnavnet , Aktiveret funktion. Det kan være en god ide at omdøbe den til noget mere sigende, f.eks. "MyHexResult".
-
Vælg denne forespørgsel, og vælg derefter Hjem > Luk & Indlæs for at se resultaterne i et regneark.
Resultater
Hvis du har oprettet en funktion med mindst én parameter, kan du aktivere den som en brugerdefineret funktion for at oprette en ny kolonne og en ny værdi for hver række i en tabel.
-
Hvis du vil åbne en forespørgsel, skal du finde en, der tidligere er indlæst fra Power Query-editor, markere en celle i dataene og derefter vælge Forespørgsel > Rediger. Få mere at vide under Opret, rediger og indlæs en forespørgsel i Excel (Power Query). Seddel I dette eksempel skal forespørgslen have mindst én kolonne med datatypen Heltal .
-
Opret den brugerdefinerede funktion "MyHex" som beskrevet i afsnittet Opret og aktivér en brugerdefineret funktion, der har en parameter med Avanceret editor.
-
I forespørgslen skal du vælge Tilføj kolonne > Aktivér brugerdefineret funktion. Dialogboksen Aktivér brugerdefineret funktion vises.
-
Angiv det nye kolonnenavn, f.eks. "HexConvert", i feltet Nyt kolonnenavn .
-
Vælg navnet på en foruddefineret brugerdefineret funktion på rullelisten Funktionsforespørgsel. I dette eksempel skal du vælge "MyHex".
-
Da den brugerdefinerede funktion refererer til en parameter, vises parameteren nu.
-
Vælg en kolonne med datatypen Helt tal som parameter for funktionen.
-
Vælg OK.
Resultat
Der oprettes en ny kolonne, der viser den hexadecimale værdi for kolonnen Helt tal, du har angivet som parameter.
Se også
Hjælp til Power Query til Excel
Opret Power Query-formler i Excel
Opret en parameterforespørgsel