Tworzenie i wywoływanie funkcji niestandardowej

Dotyczy
Excel dla Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010

Funkcja niestandardowa używa języka formuły M, przyjmuje zestaw wartości wejściowych, a następnie zwraca pojedynczą wartość wyjściową. Jeśli masz logikę, której chcesz ponownie użyć wiele razy lub zastosować ten sam zestaw przekształceń do innego zapytania lub innej wartości, rozważ utworzenie funkcji niestandardowej, a następnie wywołanie funkcji tam, gdzie i kiedy jest potrzebna. Istnieje kilka sposobów tworzenia funkcji niestandardowej:

Tworzenie i wywoływanie prostej funkcji niestandardowej przy użyciu Edytor zaawansowany

Poniżej przedstawiono prosty przykład funkcji niestandardowej, która jest zgodna z długoletnią tradycją programowania.

  1. Aby utworzyć puste zapytanie:

    Programu excel Wybierz pozycję Dane>pobierające dane>z innych źródeł>— puste zapytanie.

    Power Query kliknij prawym przyciskiem myszy puste miejsce w okienku Zapytania po lewej stronie, a następnie wybierz pozycję Nowe zapytanie>Inne źródła>puste zapytanie.

  2. W okienku Zapytania po lewej stronie kliknij dwukrotnie nazwę, a następnie zmień nazwę nowego pustego zapytania na "HelloWorld".

  3. Wybierz nowe zapytanie, a następnie wybierz pozycję Narzędzia główne>Edytor zaawansowany.

  4. Zamień kod startowy szablonu na następujący kod:
    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

  5. Wybierz pozycję Gotowe.

  6. Zmieniono zapytanie "HelloWorld" na funkcję niestandardową. Zwróć uwagę na ikonę funkcji Ikona funkcji po lewej stronie.

  7. Aby wywołać funkcję, zaznacz ją, a następnie wybierz pozycję Wywołaj w podglądzie danych.

    Wywoływanie funkcji niestandardowej HelloWorld

  8. Wyniki funkcji są wyświetlane w podglądzie danych i dodawane do okienka Zapytania jako zapytanie o domyślnej nazwie Wywoływana funkcja. Możesz zmienić jego nazwę na bardziej znaczącą, taką jak "HelloWorldResult".

  9. Zaznacz to zapytanie, a następnie wybierz pozycję Zamknij narzędzia główne>& Załaduj , aby wyświetlić wyniki w arkuszu.

Rezultat

Wyniki helloworld w arkuszu

Tworzenie i wywoływanie funkcji niestandardowej zawierającej parametr z Edytor zaawansowany

W poniższym przykładzie pokazano, jak przekazać parametr do funkcji niestandardowej w celu przekonwertowania liczby dziesiętnej na liczbę szesnastkową.

  1. Aby utworzyć puste zapytanie:

    Programu excel Wybierz pozycję Dane>pobierające dane>z innych źródeł>— puste zapytanie.

    Power Query kliknij prawym przyciskiem myszy puste miejsce w okienku Zapytania po lewej stronie, a następnie wybierz pozycję Nowe zapytanie>Inne źródła>puste zapytanie.

  2. W okienku Zapytania po lewej stronie zmień nazwę nowego pustego zapytania na "MyHex".

  3. Wybierz nowe zapytanie, a następnie wybierz pozycję Narzędzia główne>Edytor zaawansowany.

  4. Zamień kod startowy szablonu na następujący kod:
    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. Wybierz pozycję Gotowe.

  6. Zmieniono zapytanie "MyHex" na funkcję niestandardową. Zwróć uwagę na ikonę funkcji Ikona funkcji po lewej stronie.

  7. Aby wywołać funkcję, zaznacz ją, a następnie w obszarze Podgląd danych wprowadź liczbę w polu parametr1 i wybierz pozycję Wywołaj.
    Wywoływanie funkcji niestandardowej MyHex

  8. Wyniki funkcji są wyświetlane w podglądzie danych i dodawane do okienka Zapytania jako zapytanie o domyślnej nazwie Wywoływana funkcja. Możesz zmienić jego nazwę na bardziej znaczącą, na przykład "MyHexResult".

  9. Zaznacz to zapytanie, a następnie wybierz pozycję Zamknij narzędzia główne>& Załaduj , aby wyświetlić wyniki w arkuszu.

Rezultat

Wynik funkcji MyHex w arkuszu

Dodawanie kolumny przez wywoływanie funkcji niestandardowej

Jeśli utworzono funkcję z co najmniej jednym parametrem, można ją wywołać jako funkcję niestandardową w celu utworzenia nowej kolumny i nowej wartości dla każdego wiersza w tabeli.

  1. Aby otworzyć zapytanie, znajdź zapytanie załadowane wcześniej z Edytor Power Query, zaznacz komórkę w danych, a następnie wybierz pozycjęEdytujkwerendę>. Aby uzyskać więcej informacji, zobacz Tworzenie, edytowanie i ładowanie zapytania w programie Excel (Power Query).

    Uwaga W tym przykładzie zapytanie wymaga co najmniej jednej kolumny typu danych Liczba całkowita .

  2. Utwórz funkcję niestandardową "MyHex", jak wyjaśniono w sekcji Tworzenie i wywoływanie funkcji niestandardowej zawierającej parametr z Edytor zaawansowany.

  3. W zapytaniu wybierz pozycję Add ColumnInvoke Custom Function (Dodaj funkcję> niestandardową). Zostanie wyświetlone okno dialogowe Wywoływanie funkcji niestandardowej .

  4. W polu Nazwa nowej kolumny wprowadź nową nazwę kolumny , na przykład "HexConvert".

  5. Wybierz nazwę wstępnie zdefiniowanej funkcji niestandardowej z listy rozwijanej Zapytanie funkcyjne. W tym przykładzie wybierz pozycję "MyHex".

  6. Ponieważ funkcja niestandardowa odwołuje się do parametru, parametr jest teraz wyświetlany.

  7. Wybierz kolumnę typu danych Liczba całkowita jako parametr funkcji.

    Okno dialogowe Wywoływanie funkcji niestandardowej

  8. Wybierz przycisk OK.

Wynik

Zostanie utworzona nowa kolumna z wartością szesnastkową kolumny Liczba całkowita wprowadzona jako parametr.

Nowa kolumna MyHex zawierająca wartości w arkuszu

Zobacz również

Dodatek Power Query dla programu Excel — pomoc

Tworzenie formuł dodatku Power Query w programie Excel

Tworzenie zapytania parametrycznego

Zarządzanie zapytaniami

Opis funkcji Power Query M (docs.com)

Używanie funkcji niestandardowych (docs.com)