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 använda samma uppsättning transformationer för 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 Avancerad redigerare för att lägga till ett eget låt-uttryck och börja om från början.
-
Använd kommandot Invoke Custom Function .
-
Det finns fler sätt att skapa funktioner som inte diskuteras i det här hjälpavsnittet, inklusive kommandona Skapa funktion och Lägg till som en fråga . En ingående diskussion finns i Förstå Power Query M-funktioner (docs.com)och Använda anpassade funktioner (docs.com).
Nedan följer ett enkelt exempel på en anpassad funktion som följer en lång programmeringstradition.
-
Så här skapar du en tom fråga:Excel 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 > Andra källor > Tom fråga.
-
I fönstret Frågor till vänster dubbelklickar du på namnet och byter sedan namn på den nya tomma frågan till "HelloWorld".
-
Markera den nya frågan och välj sedan Start > Avancerad redigerare.
-
Ersätt mallens startkod med följande kod:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Välj Klar.
-
Du har ändrat frågan "HelloWorld" till en anpassad funktion. Observera funktionsikonen
till vänster om den. -
Om du vill anropa funktionen markerar du den och väljer sedan Anropa i dataförhandsgranskningen.
-
Resultatet av funktionen visas i förhandsgranskningen av data 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 Start > Stäng & Läs in för att visa resultatet i ett kalkylblad.
Resultat
I följande exempel visas hur du överför en parameter till en anpassad funktion för att konvertera ett decimaltal till ett hexadecimalt.
-
Så här skapar du en tom fråga:Excel 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 > Andra källor > Tom fråga.
-
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 Start > Avancerad redigerare.
-
Ersätt mallens startkod med följande kod:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Välj Klar.
-
Du har ändrat frågan , "MyHex", till en anpassad funktion. Observera funktionsikonen
till vänster om den. -
Om du vill anropa funktionen markerar du den och anger sedan ett tal i rutan parameter1 i Dataförhandsgranskning och väljer Anropa.
-
Resultatet av funktionen visas i förhandsgranskningen av data 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 "MyHexResult".
-
Markera frågan och välj sedan Start > Stäng & Läs in för att visa resultatet i ett kalkylblad.
Resultat
Om du har skapat 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 som tidigare lästs in från Power Query-redigeraren, markerar en cell i data och väljer sedan Fråga > Redigera. Mer information finns i Skapa, redigera och läsa in en fråga i Excel (Power Query).Not I det här exemplet behöver frågan minst en kolumn av datatypen Heltal .
-
Skapa den anpassade funktionen "MyHex" enligt beskrivningen i avsnittet Skapa och anropa en anpassad funktion som har en parameter med Avancerad redigerare.
-
I frågan väljer du Lägg till kolumn > Anropa anpassad funktion. Dialogrutan Starta anpassad funktion visas.
-
Ange det nya kolumnnamnet, till exempel "HexConvert", i rutan Nytt kolumnnamn .
-
Välj 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 parametern nu.
-
Välj en kolumn med datatypen Heltal som parameter till funktionen.
-
Välj OK.
Resultat
En ny kolumn skapas som visar det hexadecimala värdet i kolumnen Heltal som du angav som parameter.
Mer information finns i
Skapa Power Query-formler i Excel