Funkcja niestandardowa używa języka formułY M, pobiera zestaw wartości wejściowych, a następnie zwraca pojedynczą wartość wyjściową. Jeśli masz logikę potrzebną do wielokrotnego użycia lub zastosowania tego samego zestawu przekształceń do innego zapytania lub innej wartości, rozważ utworzenie funkcji niestandardowej, a następnie użycie funkcji w miejscu i czasie. Funkcję niestandardową można utworzyć na kilka sposobów:
-
Użyj Edytora zaawansowanego, aby dodać własne oświadczenie let i zacząć od podstaw.
-
Użyj polecenia Wywołaj funkcję niestandardową.
-
Istnieją dodatkowe sposoby tworzenia funkcji, które nie zostały omówione w tym temacie pomocy, w tym polecenia Utwórz funkcję i Dodaj jako polecenia zapytania. Aby uzyskać szczegółowe omówienie, zobacz Opis funkcji M (funkcje M) dodatku Power Query (docs.com)i Używanie funkcji niestandardowych (docs.com).
Poniższy przykład jest prostym przykładem funkcji niestandardowej, która jest zgodna z od dawna zasadami programowania.
-
Aby utworzyć puste zapytanie: wybierz Excel pozycję> Pobierz > 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>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 z lewej strony.
-
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 nazwie domyślnej Invoked Function. Możesz zmienić jego nazwę na bardziej opisową, na przykład "HelloWorldResult".
-
Zaznacz to zapytanie, a następnie wybierz pozycję Narzędzia> 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ę w postaci szesnastkowej.
-
Aby utworzyć puste zapytanie: wybierz Excel pozycję> Pobierz > 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>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 z lewej strony.
-
Aby wywołać funkcję, zaznacz ją, a następnie w oknie Podgląd danych wprowadź liczbę w polu parametru1 i wybierz pozycję Wywołaj.
-
Wyniki funkcji są wyświetlane w podglądzie danych i dodawane do okienka Zapytania jako zapytanie o nazwie domyślnej Invoked Function. Możesz zmienić jego nazwę na bardziej opisową, na przykład "MyHexResult".
-
Zaznacz to zapytanie, a następnie wybierz pozycję Narzędzia> 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ź wcześniej załadowaną komórkę w Edytorze dodatku Power Query, zaznacz komórkę w danych, a następnie wybierz pozycję Zapytanie i> Edytuj. Aby uzyskać więcej informacji, zobacz Tworzenie, edytowanie i ładowanie zapytania w dodatku Excel (Power Query). Uwaga W tym przykładzie zapytanie wymaga co najmniej jednej kolumny typu danych Cała liczba.
-
Utwórz funkcję niestandardową "MyHex", zgodnie z sekcją Tworzenie i wywoływanie funkcji niestandardowej z parametrem w Edytorze zaawansowanym.
-
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ź nazwę nowej kolumny, na przykład "HexConvert".
-
Wybierz nazwę wstępnie zdefiniowanej funkcji niestandardowej z listy rozwijanej zapytanie funkcji. W tym przykładzie wybierz pozycję "MyHex".
-
Ponieważ funkcja niestandardowa odwołuje się do parametru, parametr jest teraz wyświetlany.
-
Zaznacz kolumnę typu danych Liczba cała jako parametr funkcji.
-
Wybierz przycisk OK.
Wynik
Zostanie utworzona nowa kolumna z wartością szesnastkową kolumny Liczba cała wprowadzona jako parametr.
Zobacz również
Tworzenie formuł dodatku Power Query w programie Excel
Tworzenie zapytania parametryowego