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).
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.
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.
W okienku Zapytania po lewej stronie kliknij dwukrotnie nazwę, a następnie zmień nazwę nowego pustego zapytania na "HelloWorld".
Wybierz 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
HelloWorldWybierz pozycję Gotowe.
Zmieniono zapytanie "HelloWorld" na funkcję niestandardową. Zwróć uwagę na
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ę Zamknij narzędzia główne>& Załaduj , aby wyświetlić wyniki w arkuszu.
Rezultat
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ą.
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.
W okienku Zapytania po lewej stronie zmień nazwę nowego pustego zapytania na "MyHex".
Wybierz 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
MyHexWybierz pozycję Gotowe.
Zmieniono zapytanie "MyHex" na funkcję niestandardową. Zwróć uwagę na
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ę Zamknij narzędzia główne>& Załaduj , aby wyświetlić wyniki w arkuszu.
Rezultat
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.
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 .
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ę Add ColumnInvoke Custom Function (Dodaj 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 również
Dodatek Power Query dla programu Excel — pomoc
Tworzenie formuł dodatku Power Query w programie Excel
Tworzenie zapytania parametrycznego