パラメーターは、再利用できる値を簡単に格納および管理する方法として機能します。
パラメーターを使用すると、クエリの値に応じてクエリの出力を動的に変更する柔軟性が得られ、次の場合に使用できます。
- 特定の変換およびデータ ソース関数の引数値を変更する。
- カスタム関数の入力。
[パラメーターを管理] ウィンドウ内で簡単にパラメーターを管理できます。 [パラメーターの管理] ウィンドウに移動するには、[ホーム] タブの [パラメーターの管理] 内の [パラメーターの管理] オプションを選択します。
パラメーターの作成
Power Query には、パラメーターを簡単に作成する 2 つの方法が用意されています。
既存のクエリから: 値が日付、テキスト、数値などの単純な非構造化定数であるクエリを右クリックし、[ パラメーターに変換] を選択します。
パラメーターを右クリックし、[クエリに変換] を選択して、パラメーターを クエリに変換することもできます。
[パラメーターの管理] ウィンドウの使用: [ホーム] タブの [パラメーターの管理] のドロップダウン メニューから [新しいパラメーター] オプションを選択します。または、[パラメーターの管理] ウィンドウを起動し、上部にある [新規] を選択してパラメーターを作成します。 このフォームに入力し、[ OK] を 選択して新しいパラメーターを作成します。
パラメーターを作成した後は、[ パラメーターの管理] ウィンドウにいつでも戻って、任意のパラメーターをいつでも変更できます。
パラメーターのプロパティ
パラメーターには、Power Query の変換に使用できる値が格納されます。 パラメーターの名前と格納する値とは別に、メタデータを提供する他のプロパティもあります。 パラメーターのプロパティは次のとおりです。
名前: このパラメーターの名前を指定すると、作成する可能性がある他のパラメーターを簡単に認識して区別できます。
説明: パラメーター情報が表示されると、パラメーター名の横に説明が表示され、パラメーター値を指定しているユーザーがその目的とそのセマンティクスを理解するのに役立ちます。
必須: このチェック ボックスは、後続のユーザーがパラメーターの値を指定する必要があるかどうかを指定できるかどうかを示します。
型: パラメーターのデータ型を指定します。 パラメーターのデータ型は常に設定することをお勧めします。 データ型の重要性の詳細については、「データ型」を参照 してください。
推奨値: 使用可能なオプションから 現在 の値の値を選択するための提案をユーザーに提供します。
任意の値: 現在の値には、手動で入力した任意の値を指定できます。
値の一覧: テーブルに似た単純なエクスペリエンスを提供するため、 現在の値に対して後で選択できる推奨値の一覧を定義できます。 このオプションを選択すると、[ 既定値] という新しいオプションが使用できるようになります。 ここから、このパラメーターの既定値を選択できます。これは、パラメーターを参照するときにユーザーに表示される既定値です。 この値は 、現在の値とは同じではありません。これはパラメーター内に格納された値であり、変換で引数として渡すことができます。 [値のリスト] を使用すると、[既定値] フィールドと [現在の値] フィールドにドロップダウン メニューが表示され、推奨される値の一覧からいずれかの値を選択できます。
注
パラメーターに渡す任意の値を手動で入力することもできます。 提案された値の一覧は、単純な提案としてのみ機能します。
クエリ: リスト クエリ (出力がリストであるクエリ) を使用して、 現在の値に対して後で選択できる推奨値の一覧を指定します。
現在の値: このパラメーターに格納されている値。
パラメーターを使用する場所
パラメーターはさまざまな方法で使用できますが、2 つのシナリオでより一般的に使用されます。
- ステップ引数: ユーザー インターフェイス (UI) から駆動される複数の変換の引数としてパラメーターを使用できます。
- カスタム関数引数: クエリから新しい関数を作成し、カスタム関数の引数としてパラメーターを参照できます。
次のセクションでは、これら 2 つのシナリオの例を示します。
ステップ引数
この機能を有効にするには、まず Power Query エディターの [表示] タブに移動し、[パラメーター] グループの [常に許可] オプションを選択します。
たとえば、次の Orders テーブルには、 OrderID、 Total Units、 Margin フィールドが含まれています。
この例では、10 進数の種類と現在の値が 0.2 の最小余白という名前の新しいパラメーターを作成します。
Orders クエリに移動し、[余白] フィールドで [より大きい] フィルター オプションを選択します。
[ 行のフィルター] ウィンドウには、フィールドのデータ型が選択されたボタンがあります。 このボタンのドロップダウン メニューから [パラメーター] オプションを選択します。 データ型ボタンの横にあるフィールド選択から、この引数に渡すパラメーターを選択します。 この場合は、 最小余白 パラメーターです。
[OK] を選択すると、パラメーターの [現在の値] を使用してテーブルがフィルター処理されます。
[最小マージン] パラメーターの [現在の値] を 0.3 に変更すると、注文クエリはすぐに更新され、Margin が 30%を超える行のみが表示されます。
ヒント
Power Query の多くの変換では、ドロップダウンからパラメーターを選択できます。 常にそれを見つけ、パラメーターが提供するメリットを活用することをお勧めします。
カスタム関数の引数
Power Query を使用すると、単純な選択で既存のクエリからカスタム関数を作成できます。 前の例に従って、 Orders クエリを右クリックし、[ 関数の作成] を選択します。 このアクションにより、新しい [関数の作成] ウィンドウが 起動します。 このウィンドウで、新しい関数に名前を付け、クエリで参照されているパラメーターを示します。 これらのパラメーターは、カスタム関数のパラメーターとして使用されます。
この新しい関数には、必要に応じて名前を付けることができます。 デモンストレーションの目的で、この新しい関数の名前は MyFunction です。 [OK] を選択すると、新しい関数の名前を使用して[クエリ] ペインに新しいグループが作成されます。 このグループでは、関数に使用されているパラメーター、関数の作成に使用されたクエリ、および関数自体を検索します。
この新しい関数をテストするには、[ 最小余白 ] ラベルの下のフィールドに 0.4 などの値を入力します。 次に、[ 呼び出し ] ボタンを選択します。 このアクションにより、新しいクエリ「Invoked Function」が作成され、関数の引数として使用される値 0.4 が実際に渡され、利益率が40%を超える行のみが取得されます。
カスタム関数を作成する方法の詳細については、「カスタム関数 の作成」を参照してください。
複数値パラメーターまたはリスト パラメーター
Power Query Online でのみ使用できる新しい種類のパラメーターは、複数値パラメーターまたはリスト パラメーターです。 このセクションでは、新しいリスト パラメーターを作成する方法と、それをクエリで使用する方法について説明します。
前の例に従って、 最小余白 の現在の値 を 0.3 から 0.1 に変更します。 新しい目標は、分析対象の注文の注文番号を保持できるリスト パラメーターを作成することです。 新しいパラメーターを作成するには、[ パラメーターの管理] ダイアログに移動し、[ 新規 ] を選択して新しいパラメーターを作成します。 この新しいパラメーターに次の情報を入力します。
- 名前: 興味深い注文
- 説明: 特定の分析に興味深い注文番号のセット
- 必須: 真
- 種類: リスト
これらのフィールドを定義すると、パラメーターに格納する値を入力できる新しいグリッドがポップアップ表示されます。 この場合、これらの値は 125、 777、 および 999 です。
注
この例では数値を使用していますが、テキスト、日付、datetime など、他のデータ型をリストに格納することもできます。 詳細: Power Query のデータ型
ヒント
リスト パラメーターで使用される値をより詳細に制御する場合は、常に定数値を含むリストを作成できます。 次に、この記事で前述したように、リスト クエリをパラメーターに変換します。
新しい 興味深い注文 リストのパラメーターが設定された状態で、 Orders クエリに戻ります。 OrderID フィールドのオートフィルター メニューを選択します。 [ 数値フィルター>In] を選択します。
ヒント
その他のデータ型の一部では、[ 入力 ] フィルターがメイン フィルター メニューに表示されない場合があります。 その他のフィルター オプションを選択し、[ クエリ設定] でフィルターを編集します。 次に、エディターのフィルター ドロップダウンから [ 入力] を選択します。
このオプションを選択すると、新しい [行のフィルター] ダイアログ ボックスが表示されます。 ここから、ドロップダウン メニューからリスト パラメーターを選択できます。
注
リスト パラメーターは、 In オプションまたは Not in オプションで使用できます。 では 、リストの値によってのみフィルター処理できます。 Not in ではまったく逆の処理が行われ、列をフィルター処理して、パラメーターに格納されている値と等しくないすべての値を取得しようとします。
[OK] を選択すると、クエリに戻ります。 そこで、作成したリスト パラメーターを使用してクエリがフィルター処理され、 OrderID が 125、 777、または 999 のいずれかに等しい行のみが保持されたという結果が得られます。