En anpassad funktion använder formelspråket M, tar en uppsättning indatavärden och returnerar sedan ett enda utdatavärde. Om du har logik som du vill återanvända många gånger eller tillämpa samma uppsättning transformationer på en annan fråga eller ett annat värde kan du skapa en anpassad funktion och sedan anropa funktionen där och när du behöver den. Det finns flera sätt att skapa en anpassad funktion:
- Använd den avancerade redigeraren för att lägga till din egen let-instruktion och börja från början.
- Använd kommandot Anropa anpassad funktion .
- Det finns fler sätt att skapa funktioner som inte diskuteras i det här hjälpavsnittet, bland annat kommandona Skapa funktion och Lägg till som en fråga . Mer information finns i Förstå Power Query M-funktioner och Använda anpassade funktioner.
Skapa och anropa en enkel anpassad funktion med den avancerade redigeraren
I följande exempel visas en enkel anpassad funktion som följer en gammal programmeringstradition.
Skapa en tom fråga:
Excel (på engelska) Välj data>, hämta data>från andra källor>,tom fråga.
Power Query Högerklicka på en tom plats i fönstret Frågor till vänster och välj sedan Ny fråga> Tomfrågaom andra källor>.
I fönstret Frågor till vänster dubbelklickar du på namnet och byter namn på den nya, tomma frågan till
HelloWorld.Markera den nya frågan och välj sedan HomeAvancerad>redigerare.
Ersätt mallstartkoden med följande kod:
let
HelloWorld = () => ("Hello World")
in
HelloWorldVälj Klar.
Du har ändrat frågan,
HelloWorld, till en anpassad funktion. Lägg märke till funktionsikonen
till vänster om den.Om du vill anropa funktionen markerar du den och väljer sedan Anropa i dataförhandsgranskning.
Resultatet av funktionen visas i förhandsgranskningen och läggs till i fönstret Frågor som en fråga med standardnamnet Anropad funktion. Du kanske vill byta namn på den till något mer beskrivande, till exempel
HelloWorldResult.Markera frågan och välj sedan Stäng>start & Läs in för att visa resultatet i ett kalkylblad.
Resultat
Skapa och anropa en anpassad funktion som har en parameter med den avancerade redigeraren
I följande exempel visas hur du skickar en parameter till en anpassad funktion för att konvertera ett decimalt tal till hexadecimalt.
Skapa en tom fråga:
Excel (på engelska) Välj data>, hämta data>från andra källor>,tom fråga.
Power Query Högerklicka på en tom plats i fönstret Frågor till vänster och välj sedan Ny fråga> Tomfrågaom andra källor>.
I fönstret Frågor till vänster byter du namn på den nya, tomma frågan till
MyHex.Markera den nya frågan och välj sedan HomeAvancerad>redigerare.
Ersätt mallstartkoden med följande kod:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexVälj Klar.
Du har ändrat frågan,
MyHex, till en anpassad funktion. Lägg märke till funktionsikonen
till vänster om den.Markera funktionen om du vill anropa den. I Dataförhandsgranskning anger du ett tal i rutan parameter1 och väljer Anropa.
Resultatet av funktionen visas i Förhandsgranskning. Power Query lägger till resultaten i fönstret Frågor som en fråga med standardnamnet Anropad funktion. Du kanske vill byta namn på den till något mer beskrivande, till exempel
MyHexResult.Markera frågan och välj sedan Stäng>start & Läs in för att visa resultatet i ett kalkylblad.
Resultat
Lägga till en kolumn genom att anropa en anpassad funktion
Om du skapar en funktion med minst en parameter kan du anropa den som en anpassad funktion för att skapa en ny kolumn och ett nytt värde för varje rad i en tabell.
Om du vill öppna en fråga letar du reda på en fråga som tidigare lästs in från Power Query-redigeraren, markerar en cell i dina data och väljer sedan Frågeredigera>. Mer information finns i Skapa, redigera och läsa in en fråga i Excel (Power Query).
Obs
I det här exemplet behöver frågan minst en kolumn av datatypen Heltal .
Skapa den
MyHexanpassade funktionen enligt beskrivningen i avsnittet Skapa och anropa en anpassad funktion som har en parameter med den avancerade redigeraren.I frågan väljer du Lägg till kolumn>Anropa anpassad funktion. Dialogrutan Anropa anpassad funktion visas.
Ange det nya kolumnnamnet, till exempel
HexConvert, i rutan Nytt kolumnnamn .Markera namnet på en fördefinierad anpassad funktion i listrutan Funktionsfråga. I det här exemplet väljer du
MyHex.Eftersom den anpassade funktionen refererar till en parameter visas nu parametern.
Markera en kolumn med datatypen Heltal som en parameter till funktionen.
Välj OK.
Resultat
En ny kolumn skapas som visar det hexadecimala värdet för hela talkolumnen du angav som parameter.
Se även
Skapa en parameterfråga (Power Query)