En anpassad funktion använder formelspråket M, använder 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änder samma uppsättning transformationer för en annan fråga eller ett annat värde kan du skapa en anpassad funktion och sedan skapa 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 låt-sats och börja från början.
-
Använd kommandot Invoke Custom Function.
-
Det finns fler sätt att skapa funktioner som inte tas upp i det här hjälpavsnittet, bland annat kommandona Skapa funktion och Lägg till som fråga. Mer ingående information finns i Förstå Power Query M-funktioner (docs.com)och Använda anpassade funktioner (docs.com).
Följande är ett enkelt exempel på en anpassad funktion som följer en länge hålls programmeringsprogrammering.
-
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 Klart.
-
Du har ändrat frågan till en anpassad funktion. Observera att funktionsikonen till vänster om den.
-
Om du vill anropa funktionen markerar du den och väljer sedan Invoke i Data Preview.
-
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å det till något mer beskrivande, till exempel "HelloWorldResult".
-
Markera den frågan och välj sedan Start > stäng & läs in för att se resultatet i ett kalkylblad.
Resultat
I följande exempel visas hur du skickar 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 Klart.
-
Du har ändrat frågan till en anpassad funktion. Observera att funktionsikonen till vänster om den.
-
Om du vill anropa funktionen markerar du den och anger sedan ett nummer i rutan parameter1 i dataförhandsgranskningen och väljer Invoke.
-
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å det till något mer beskrivande, till exempel "MyHexResult".
-
Markera den frågan och välj sedan Start > stäng & läs in för att se 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 upp en tidigare inläst från Power Query-redigeraren, markerar en cell i dina 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). Obs! I det här exemplet behöver frågan minst en kolumn med datatypen Helt tal.
-
Skapa den anpassade funktionen "MyHex" enligt 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 eller > Anropa anpassad funktion. Dialogrutan Anropa 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.
-
Markera en kolumn med datatypen Heltnummer som en parameter för funktionen.
-
Välj OK.
Resultat
En ny kolumn skapas som visar det hexadecimala värdet i kolumnen Heltal som du angav som parameter.
Se även
Hjälp om Power Query Excel Power Query
Skapa Power Query-formler i Excel