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

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

次に示すのは、長年のプログラミングの習慣に従うカスタム関数の簡単な例です。

  1. 空のクエリを作成するには、[データのExcel選択]>[その他のソース>データの取得] >

          を選択します

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

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

  3. 新しいクエリを選択し、[ ホーム] > エディター] を選択します

  4. テンプレートのスターター コードを次のコードに置き換えます。

    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

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

  6. クエリ "HelloWorld" をカスタム関数に変更しました。 関数アイコンは 関数アイコン 左側に表示されます。

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

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

  8. 関数の結果はデータ プレビューに表示され、[クエリ] ウィンドウに既定の名前の [呼び出された関数] を含むクエリとして追加されます。 "HelloWorldResult" など、わかりやすい名前に変更できます。

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

Results 

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

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

  1. 空のクエリを作成するには、[データのExcel選択]>[その他のソース>データの取得] >

          を選択します

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

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

  3. 新しいクエリを選択し、[ ホーム] > エディター] を選択します

  4. テンプレートのスターター コードを次のコードに置き換えます。

    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

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

  6. クエリ "MyHex" をカスタム関数に変更しました。 関数アイコンは 関数アイコン 左側に表示されます。

  7. 関数を呼び出す場合は、関数を選択し、[データ のプレビュー] で [parameter1] ボックスに数値を入力し、[呼び出し] を 選択します

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

  8. 関数の結果はデータ プレビューに表示され、[クエリ] ウィンドウに既定の名前の [呼び出された関数] を含むクエリとして追加されます。 "MyHexResult" など、わかりやすい名前に変更できます。

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

Results 

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

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

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

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

  2. 「Advanced Editor を使用してパラメーターを持つカスタム関数を作成して呼び出す」セクションで説明したように、"MyHex" カスタム関数を作成します

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

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

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

  6. カスタム関数はパラメーターを参照します。パラメーターが表示されます。

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

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

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

結果

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

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

関連項目

Power Query for Excel ヘルプ

Power Query の数式を作成Excel

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

クエリを管理する

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

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

ヘルプを表示

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

×