カスタム関数は、M 式言語を使用し、一連の入力値を受け取り、1 つの出力値を返します。 何度も再利用するロジックがある場合や、同じ変換セットを別のクエリまたは値に適用するロジックがある場合は、カスタム関数を作成してから、必要な場所と必要なときに関数を呼び出します。 カスタム関数を作成する方法は複数あります。
-
高度な エディターを使用して、独自の let ステートメント を追加 し、最初から開始します。
-
[カスタム関数の 呼び出し] コマンドを使用 します。
-
このヘルプ トピックでは説明していない関数を作成する他の方法があります。これには、[関数の作成] コマンドや [クエリとして追加] コマンドが含まれます。 詳細については、「Power Query M 関数について (docs.com)」と「カスタム関数を使用する(docs.com)」を参照してください。
次に示すのは、長年のプログラミングの習慣に従うカスタム関数の簡単な例です。
-
空のクエリを作成するには、[データのExcel選択]>[その他のソース>データの取得] >
を選択します。 Power Query 左側の [クエリ] ウィンドウで空白の場所を右クリックし、[新しいクエリ] を選択し、[空のクエリ] >その他の>選択します。 -
左側の [クエリ] ウィンドウで、名前をダブルクリックし、新しい空のクエリの名前を "HelloWorld" に変更します。
-
新しいクエリを選択し、[ ホーム] > エディター] を選択します。
-
テンプレートのスターター コードを次のコードに置き換えます。
let HelloWorld = () => ("Hello World") in HelloWorld
-
[完了] を選択します。
-
クエリ "HelloWorld" をカスタム関数に変更しました。 関数アイコンは 左側に表示されます。
-
関数を呼び出す場合は、関数を選択し、[データ プレビューで呼び出 す] を選択します。
-
関数の結果はデータ プレビューに表示され、[クエリ] ウィンドウに既定の名前の [呼び出された関数] を含むクエリとして追加されます。 "HelloWorldResult" など、わかりやすい名前に変更できます。
-
そのクエリを選択し、[ホーム]>閉じる] &読み込み] を選択して、ワークシートに結果を表示します。
Results
次の例は、パラメーターをカスタム関数に渡して 10 進数を 16 進数に変換する方法を示しています。
-
空のクエリを作成するには、[データのExcel選択]>[その他のソース>データの取得] >
を選択します。 Power Query 左側の [クエリ] ウィンドウで空白の場所を右クリックし、[新しいクエリ] を選択し、[空のクエリ] >その他の>選択します。 -
左側の [クエリ] ウィンドウで、新しい空のクエリの名前を "MyHex" に変更します。
-
新しいクエリを選択し、[ ホーム] > エディター] を選択します。
-
テンプレートのスターター コードを次のコードに置き換えます。
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
[完了] を選択します。
-
クエリ "MyHex" をカスタム関数に変更しました。 関数アイコンは 左側に表示されます。
-
関数を呼び出す場合は、関数を選択し、[データ のプレビュー] で [parameter1] ボックスに数値を入力し、[呼び出し] を 選択します。
-
関数の結果はデータ プレビューに表示され、[クエリ] ウィンドウに既定の名前の [呼び出された関数] を含むクエリとして追加されます。 "MyHexResult" など、わかりやすい名前に変更できます。
-
そのクエリを選択し、[ホーム]>閉じる] &読み込み] を選択して、ワークシートに結果を表示します。
Results
少なくとも 1 つのパラメーターを持つ関数を作成した場合は、カスタム関数として呼び出して、テーブル内の行ごとに新しい列と新しい値を作成できます。
-
クエリを開く場合は、Power Query Editor から以前に読み込まれたクエリを探し、データ内のセルを選択し、[クエリ] を選択して 、[編集]>します。 詳細については、「クエリを作成、編集、読み込む 」を参照Excel (Power Query) を参照してください。 注 この例では、クエリには、数値データ型の少なくとも 1 つの列が 必要です。
-
「Advanced Editor を使用してパラメーターを持つカスタム関数を作成して呼び出す」セクションで説明したように、"MyHex" カスタム関数を作成します。
-
クエリで、[列の追加]を選択し>関数を呼び出します。 [ カスタム関数の呼び出し ] ダイアログ ボックスが表示されます。
-
[新しい列名] ボックスに、新しい列名 ("HexConvert" など) を 入力します。
-
[関数クエリ] ドロップダウンから定義済みのカスタム関数の名前を選択します。 この例では、[MyHex] を選択します。
-
カスタム関数はパラメーターを参照します。パラメーターが表示されます。
-
関数のパラメーターとして 、数値 データ型の列を選択します。
-
[OK] を選択します。
結果
パラメーターとして入力した整数列の 16 進数の値を示す新しい列が作成されます。