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:
-
Użyj Edytor zaawansowany, aby dodać własną instrukcję let i zacząć od podstaw.
-
Użyj polecenia Wywołaj funkcję niestandardową .
-
Istnieją dodatkowe sposoby tworzenia funkcji, które nie są omówione w tym temacie pomocy, w tym polecenia Utwórz funkcję i Dodaj jako zapytanie . Aby zapoznać się z dogłębną dyskusją, zobacz Opis funkcji Power Query M (docs.com)i Używanie funkcji niestandardowych (docs.com).
Poniżej przedstawiono prosty przykład funkcji niestandardowej, która jest zgodna z długoletnią tradycją programowania.
-
Aby utworzyć puste zapytanie:Program Excel wybierz pozycję Dane > Pobierz > danychz 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.
-
W okienku Zapytania po lewej stronie kliknij dwukrotnie nazwę, a następnie zmień nazwę nowego pustego zapytania na "HelloWorld".
-
Zaznacz nowe zapytanie, a następnie wybierz pozycję Narzędzia główne > Edytor zaawansowany.
-
Zamień kod startowy szablonu na następujący kod:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Wybierz pozycję Gotowe.
-
Zmieniono zapytanie "HelloWorld" na funkcję niestandardową. Zwróć uwagę, że ikona funkcji
po lewej stronie. -
Aby wywołać funkcję, zaznacz ją, a następnie wybierz pozycję Wywołaj w podglądzie danych.
-
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".
-
Zaznacz to zapytanie, a następnie wybierz pozycję Narzędzia główne > Zamknij & Załaduj , aby wyświetlić wyniki w arkuszu.
Wyniki
W poniższym przykładzie pokazano, jak przekazać parametr do funkcji niestandardowej w celu przekonwertowania liczby dziesiętnej na liczbę szesnastkową.
-
Aby utworzyć puste zapytanie:Program Excel wybierz pozycję Dane > Pobierz > danychz 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.
-
W okienku Zapytania po lewej stronie zmień nazwę nowego pustego zapytania na "MyHex".
-
Zaznacz nowe zapytanie, a następnie wybierz pozycję Narzędzia główne > Edytor zaawansowany.
-
Zamień kod startowy szablonu na następujący kod:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Wybierz pozycję Gotowe.
-
Zmieniono zapytanie "MyHex" na funkcję niestandardową. Zwróć uwagę, że ikona funkcji
po lewej stronie. -
Aby wywołać funkcję, zaznacz ją, a następnie w obszarze Podgląd danych wprowadź liczbę w polu parametr1 i wybierz pozycję Wywołaj.
-
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".
-
Zaznacz to zapytanie, a następnie wybierz pozycję Narzędzia główne > Zamknij & Załaduj , aby wyświetlić wyniki w arkuszu.
Wyniki
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.
-
Aby otworzyć zapytanie, znajdź zapytanie załadowane wcześniej z Edytor Power Query, zaznacz komórkę w danych, a następnie wybierz pozycję Zapytanie > Edytuj. Aby uzyskać więcej informacji, zobacz Tworzenie, edytowanie i ładowanie zapytania w programie Excel (Power Query).Nuta W tym przykładzie zapytanie wymaga co najmniej jednej kolumny typu danych Liczba całkowita .
-
Utwórz funkcję niestandardową "MyHex", jak wyjaśniono w sekcji Tworzenie i wywoływanie funkcji niestandardowej zawierającej parametr z Edytor zaawansowany.
-
W zapytaniu wybierz pozycję Dodaj kolumnę > Wywołaj funkcję niestandardową. Zostanie wyświetlone okno dialogowe Wywoływanie funkcji niestandardowej .
-
W polu Nazwa nowej kolumny wprowadź nową nazwę kolumny , na przykład "HexConvert".
-
Wybierz nazwę wstępnie zdefiniowanej funkcji niestandardowej z listy rozwijanej Zapytanie funkcyjne. W tym przykładzie wybierz pozycję "MyHex".
-
Ponieważ funkcja niestandardowa odwołuje się do parametru, parametr jest teraz wyświetlany.
-
Wybierz kolumnę typu danych Liczba całkowita jako parametr funkcji.
-
Wybierz przycisk OK.
Wynik
Zostanie utworzona nowa kolumna z wartością szesnastkową kolumny Liczba całkowita wprowadzona jako parametr.
Zobacz też
Dodatek Power Query dla programu Excel — pomoc
Tworzenie formuł dodatku Power Query w programie Excel
Tworzenie zapytania parametrycznego