Skapa och anropa en anpassad funktion

Gäller för
Excel för Microsoft 365 Excel 2024 Excel 2021

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.

  1. 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>.

  2. I fönstret Frågor till vänster dubbelklickar du på namnet och byter namn på den nya, tomma frågan till HelloWorld.

  3. Markera den nya frågan och välj sedan HomeAvancerad>redigerare.

  4. Ersätt mallstartkoden med följande kod:
    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

  5. Välj Klar.

  6. Du har ändrat frågan, HelloWorld, till en anpassad funktion. Lägg märke till funktionsikonen Funktionsikonen till vänster om den.

  7. Om du vill anropa funktionen markerar du den och väljer sedan Anropa i dataförhandsgranskning.

    Anropa den anpassade HelloWorld-funktionen

  8. 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.

  9. Markera frågan och välj sedan Stäng>start & Läs in för att visa resultatet i ett kalkylblad.

Resultat

Resultat av HelloWorld i ett kalkylblad

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.

  1. 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>.

  2. I fönstret Frågor till vänster byter du namn på den nya, tomma frågan till MyHex.

  3. Markera den nya frågan och välj sedan HomeAvancerad>redigerare.

  4. Ersätt mallstartkoden med följande kod:
    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. Välj Klar.

  6. Du har ändrat frågan, MyHex, till en anpassad funktion. Lägg märke till funktionsikonen Funktionsikonen till vänster om den.

  7. Markera funktionen om du vill anropa den. I Dataförhandsgranskning anger du ett tal i rutan parameter1 och väljer Anropa.
    Anropa den anpassade funktionen MyHex

  8. 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.

  9. Markera frågan och välj sedan Stäng>start & Läs in för att visa resultatet i ett kalkylblad.

Resultat

Resultatet av funktionen MinHex i ett kalkylblad

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.

  1. 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 .

  2. Skapa den MyHex anpassade funktionen enligt beskrivningen i avsnittet Skapa och anropa en anpassad funktion som har en parameter med den avancerade redigeraren.

  3. I frågan väljer du Lägg till kolumn>Anropa anpassad funktion. Dialogrutan Anropa anpassad funktion visas.

  4. Ange det nya kolumnnamnet, till exempel HexConvert, i rutan Nytt kolumnnamn .

  5. Markera namnet på en fördefinierad anpassad funktion i listrutan Funktionsfråga. I det här exemplet väljer du MyHex.

  6. Eftersom den anpassade funktionen refererar till en parameter visas nu parametern.

  7. Markera en kolumn med datatypen Heltal som en parameter till funktionen.

    Dialogrutan Anropa anpassad funktion

  8. Välj OK.

Resultat

En ny kolumn skapas som visar det hexadecimala värdet för hela talkolumnen du angav som parameter.

Den nya kolumnen MinHex med värden i ett kalkylblad

Se även

Power Query för Excel-hjälp

Skapa en parameterfråga (Power Query)

Hantera frågor (Power Query)

Förstå M-funktionerna i Power Query

Använda anpassade funktioner