カスタム関数を作成して呼び出す

適用先
Excel for Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010

カスタム関数は M 数式言語を使用し、一連の入力値を受け取って、1 つの出力値を返します。 何度も再利用するロジックがある場合、または同じ変換セットを別のクエリまたは値に適用するロジックがある場合は、カスタム関数を作成し、必要なときに必要な関数を呼び出すことを検討してください。 カスタム関数を作成するには、いくつかの方法があります。

  • 詳細エディターを使用して独自の let ステートメントを追加し、最初から開始します。
  • [ カスタム関数の呼び出し ] コマンドを使用します。
  • 関数を作成するには、[ 関数の作成 ] コマンドや [ クエリとして追加 ] コマンドなど、このヘルプ トピックで説明されていない関数を作成する方法が他にもあります。 詳細については、「Power Query M 関数について (docs.com)」および「カスタム関数を使用する (docs.com)」を参照してください。

詳細エディターを使用して単純なカスタム関数を作成して呼び出す

以下は、長年にわたるプログラミングの伝統に従うカスタム関数の簡単な例です。

  1. 空のクエリを作成するには:

    Excel[データ]>データの取得>その他のソースから>空白のクエリ] を選択します。

    Power Query 左側の [クエリ] ウィンドウで空白の場所を右クリックし、[新しいクエリ]>[その他のソース]>空白のクエリ] を選択します。

  2. 左側の [クエリ] ウィンドウで、名前をダブルクリックし、新しい空のクエリの名前を "HelloWorld" に変更します。

  3. 新しいクエリを選択し、[Home>詳細エディター] を選択します。

  4. テンプレート スターター コードを次のコードに置き換えます。
    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

  5. [完了] を選択します。

  6. クエリ "HelloWorld" をカスタム関数に変更しました。 その左側にある関数アイコン 関数アイコンに 注目してください。

  7. 関数を呼び出すには、関数を選択し、[データ プレビューで 呼び出す ] を選択します。

    HelloWorld カスタム関数の呼び出し

  8. 関数の結果は [データ プレビュー] に表示され、既定の名前である [呼び出された関数] のクエリとして [クエリ] ペインに追加されます。 "HelloWorldResult" など、より意味のある名前に変更することもできます。

  9. そのクエリを選択し、[ホーム] >[閉じる] & [読み込む] を選択して、ワークシートに結果を表示します。

結果

ワークシートでの HelloWorld の結果

詳細エディターでパラメーターを持つカスタム関数を作成して呼び出す

次の例は、10 進数を 16 進数に変換するためにカスタム関数にパラメーターを渡す方法を示しています。

  1. 空のクエリを作成するには:

    Excel[データ]>データの取得>その他のソースから>空白のクエリ] を選択します。

    Power Query 左側の [クエリ] ウィンドウで空白の場所を右クリックし、[新しいクエリ]>[その他のソース]>空白のクエリ] を選択します。

  2. 左側の [クエリ] ウィンドウで、新しい空のクエリの名前を "MyHex" に変更します。

  3. 新しいクエリを選択し、[Home>詳細エディター] を選択します。

  4. テンプレート スターター コードを次のコードに置き換えます。
    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. [完了] を選択します。

  6. クエリ "MyHex" をカスタム関数に変更しました。 その左側にある関数アイコン 関数アイコンに 注目してください。

  7. 関数を呼び出すには、関数を選択し、データ プレビューで、 パラメーター 1 ボックスに数値を入力し、[ 呼び出す] を選択します。
    MyHex カスタム関数の呼び出し

  8. 関数の結果は [データ プレビュー] に表示され、デフォルト名「呼び出された関数」のクエリとしてクエリとして [クエリ] ペインに追加されます。 "MyHexResult" など、より意味のある名前に変更することもできます。

  9. そのクエリを選択し、[ホーム] >[閉じる] & [読み込む] を選択して、ワークシートに結果を表示します。

結果

ワークシートの MyHex 関数の結果

カスタム関数を呼び出して列を追加する

少なくとも 1 つのパラメーターを持つ関数を作成した場合は、その関数をカスタム関数として呼び出して、テーブルの各行に新しい列と新しい値を作成できます。

  1. クエリを開くには、以前にPower Query エディターから読み込まれたクエリを見つけ、データ内のセルを選択して、[クエリ>編集] を選択します。 詳細については、「Excel (Power Query) でクエリを作成、編集、ロードする」を参照してください。

    注釈 この例では、クエリに整 データ型の列が少なくとも 1 つ必要です。

  2. 詳細エディターでパラメーターを持つカスタム関数を作成して呼び出す」セクションで説明したように、「MyHex」カスタム関数を作成します。

  3. クエリで、[ 列の追加>カスタム関数の呼び出し] を選択します。 [ カスタム関数の呼び出し ] ダイアログ ボックスが表示されます。

  4. 新しい列名 ("HexConvert" など) を [ 新しい列 名] ボックスに入力します。

  5. [関数クエリ] ドロップダウンから定義済みのカスタム関数の名前を選択します。 この例では、[MyHex] を選択します。

  6. カスタム関数がパラメーターを参照しているため、パラメーターが表示されるようになりました。

  7. 関数へのパラメーターとして 、整数 データ型の列を選択します。

    [カスタム関数の呼び出し] ダイアログ ボックス

  8. [OK] を選択します。

結果

パラメーターとして入力した整数列の 16 進数値を示す新しい列が作成されます。

ワークシート内の値の新しい MyHex 列

関連項目

Power Query for Excel のヘルプ

Excel で Power Query の数式を作成する

パラメーター クエリを作成する

クエリの管理

Power Query M 関数について (docs.com)

カスタム関数の使用 (docs.com)