Vlastní funkce používá jazyk vzorců M, přebírá sadu vstupních hodnot a vrátí jednu výstupní hodnotu. Pokud máte logiku, kterou chcete opakovaně použít kolikrát, nebo stejnou sadu transformací použít u jiného dotazu nebo hodnoty, zvažte vytvoření vlastní funkce a potom vyvolání funkce, kde a kdy ji potřebujete. Vlastní funkci můžete vytvořit několika způsoby:
-
Pomocí rozšířeného editoru můžete přidat vlastní příkaz let a začít od začátku.
-
Použijte příkaz Vyvolat vlastní funkci.
-
Existují další způsoby, jak vytvořit funkce, které nejsou popsané v tomto tématu nápovědy, včetně příkazů Vytvořit funkci a Přidat jako dotaz. Podrobné informace najdete v tématu Principy funkcí Power Query M (docs.com)a Použití vlastních funkcí (docs.com).
Následuje jednoduchý příklad vlastní funkce, která dodržuje dlouholetou programovací tradicí.
-
Vytvoření prázdného dotazu: Excel vyberte> data > z jiných
zdrojů > prázdný dotaz. Power Query Klikněte pravým tlačítkem myši na prázdné místo v podokně Dotazy vlevo a potom vyberte Nový dotaz > Další zdroje > Prázdný dotaz. -
V podokně Dotazy vlevo poklikejte na název a přejmenujte nový prázdný dotaz na HelloWorld.
-
Vyberte nový dotaz a potom vyberte Home> Advanced Editor ( Rozšířený editor).
-
Nahraďte úvodní kód šablony následujícím kódem:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Vyberte Hotovo.
-
Změnili jste dotaz HelloWorld na vlastní funkci. Všimněte si ikony nalevo od ní.
-
Pokud chcete funkci vyvolat, vyberte ji a pak vyberte Vyvolat v náhledu dat.
-
Výsledky funkce se zobrazí v náhledu dat a přidávají se do podokna Dotazy jako dotaz s výchozím názvem Invoked Function. Můžete ho přejmenovat na něco smysluplnějšího, třeba "HelloWorldResult".
-
Vyberte tento dotaz a pak vyberte Domů> Zavřít & Načíst, abyste viděli výsledky na listu.
Výsledky
Následující příklad ukazuje, jak předat parametr vlastní funkci a převést desetinné číslo na šestnáctkové.
-
Vytvoření prázdného dotazu: Excel vyberte> data > z jiných
zdrojů > prázdný dotaz. Power Query Klikněte pravým tlačítkem myši na prázdné místo v podokně Dotazy vlevo a potom vyberte Nový dotaz > Další zdroje > Prázdný dotaz. -
V podokně Dotazy vlevo přejmenujte nový prázdný dotaz na MyHex.
-
Vyberte nový dotaz a potom vyberte Home> Advanced Editor ( Rozšířený editor).
-
Nahraďte úvodní kód šablony následujícím kódem:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Vyberte Hotovo.
-
Změnili jste dotaz MyHex na vlastní funkci. Všimněte si ikony nalevo od ní.
-
Pokud chcete funkci vyvolat, vyberte ji a pak v náhledu dat zadejte číslo do pole parametr1 a vyberte Vyvolat.
-
Výsledky funkce se zobrazí v náhledu dat a přidávají se do podokna Dotazy jako dotaz s výchozím názvem Invoked Function. Můžete ho přejmenovat na něco smysluplnějšího, třeba "MyHexResult".
-
Vyberte tento dotaz a pak vyberte Domů> Zavřít & Načíst, abyste viděli výsledky na listu.
Výsledky
Pokud jste vytvořili funkci s aspoň jedním parametrem, můžete ji vyvolat jako vlastní funkci a vytvořit nový sloupec a novou hodnotu pro každý řádek tabulky.
-
Pokud chcete otevřít dotaz, vyhledejte dříve načtený dotaz z Power Query Editoru, vyberte buňku v datech a pak vyberte Dotaz > Upravit. Další informace najdete v tématu Vytvoření, úprava a načtení dotazu v Excel (Power Query). Poznámka: V tomto příkladu potřebuje váš dotaz aspoň jeden sloupec datového typu Celé číslo.
-
Vytvořte vlastní funkci MyHex, jak je vysvětleno v části Vytvoření a vyvolání vlastní funkce, která má parametr s rozšířeným editorem.
-
V dotazu vyberte Přidat sloupec >vyvolat vlastní funkci. Zobrazí se dialogové okno Vyvolat vlastní funkci.
-
Do pole Nový název sloupce zadejte nový název sloupce, například HexConvert.
-
V rozevíracím seznamu Funkční dotaz vyberte název předdefinované vlastní funkce. V tomto příkladu vyberte "MyHex".
-
Vzhledem k tomu, že vlastní funkce odkazuje na parametr, zobrazí se tento parametr.
-
Vyberte sloupec datového typu Celé číslo jako parametr funkce.
-
Vyberte OK.
Výsledek
Vytvoří se nový sloupec zobrazující šestnáctkové hodnoty sloupce Celé číslo, který jste zadali jako parametr.
Viz také
Power Query pro Excel nápovědu
Vytvoření vzorců Power Query v Excel
Vytvoření parametrizovaného dotazu