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