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