この記事はツールマスタリーシリーズの一部で、Designer ツールの使用に役立つさまざまな活用例をナレッジベースにまとめたものです。ここでは、Alteryx Designer をマスターする道のりの一部として、複数行フォーミュラツールについて深く掘り下げて説明します。
複数行フォーミュラツール は、通常の フォーミュラツール によく似ていますが、複数行あるデータを 1 つの 式 で参照できる機能を追加したものです。たとえば、誰かが家の 1 階にいてフォーミュラツールを持っていたとします。その人は 1 階にいる人としか話すことができません。しかし複数行フォーミュラツールがあれば、2 階、屋根裏、また地下室にいる人たちとも話すことができるのです。
複数行フォーミュラツールでは、ユーザーは既存のフィールドを更新、または新しいフィールドを作成できます。どちらのオプションも大変便利であり、多くの使用方法があります。以下の使用例の詳細は、添付の v11.0 ワークフロー Multi-Row.yxmd を参照してください。
既存のフィールドを更新
データはエクセルで見栄えの良いように配置されていても、Alteryx での使用には向いていない場合がよくあります。このような場合には、値がない列を「埋めていく」ことが有効です。
この場合、各家族の最初の人のみに苗字が入れられています。そのため、現在 Null() である苗字フィールドに変更を加えると、このように簡単に処理することができます。
変数と関数を容易に式ボックスに入れるためには、設定の対応するタブをダブルクリックしてください。
新しいフィールドを作成
データがきれいになったところで、家族ごとに、各メンバーのユニークな ID を追加します。このためには、複数行フォーミュラツールを以下のように設定します。
新しいフィールドを作成する場合、ユーザーは設定するフィールドタイプを選択することができます。ここでは、Int16 が選択されました。ここでは家族ごとにグループ分けしていることに注意してください。各家族内での ID はユニークですが、異なる家族間で重複してしまう可能性があります。この新しい ID フィールドは、後ほど フィルター や 集計、その他のツールを使用する際に識別子として使用されます。
すぐ前後の行以外の行も参照できなければ、複数行ツールはそれほど便利ではありません。設定の Num 行の値を変更することで、式に使用する行数を増やすことができます。
この例では、Num 行の値を 2 まで増やしました。設定の中央部で、選択できる変数がさらに増えたことに注目してください。家族ごとの累積和が欲しいので、このフィールドでグループ分けします。
この方法は、売上金額、アイテムカウント等、さまざまなシナリオでの累積和を得るために使用できます。
ここでは家族ごとの合計スクリーンタイムの平均を計算します。この複数行フォーミュラツールの式ボックスには、以下の通り記載します。
iif([ID]=3,average([Row-2:Total Screen Time],[Row-1:Total Screen Time],[Total Screen Time]),iif([ID]=2,average([Row-1:Total Screen Time],[Total Screen Time],[Row+1:Total Screen Time]),average([Row+2:Total Screen Time],[Row+1:Total Screen Time],[Total Screen Time])))
この式は各行の ID 値を確認し、正しい行を使用して平均を求める式をカスタマイズします。
このツールでまだ変更されていない最後の設定部分は、[存在しない行の値] ドロップダウンです。これは、存在しない行の値(これがドロップダウンの名前になっています)を式に使用する必要がある場合、Alteryxにどの値を使用すればよいか教えるものです。これが起こるのは、例えば、データの最初の行の値を計算する際、式に行1の変数が含まれるような場合です。ユーザーは、その存在しない行の値を何にするか選択することができます。
この例では、存在しない行は最も近い値が存在する行を参照するよう設定されています。こうすることで、フォーミュラが 1 行目に [Row -1: Total Screen Time] を使用しようとした際、それが存在しないことがわかると、代わりに 1 行目の値を使用します。これで、出力されている通り、差の 0 が結果として表示されます。
この複数行フォーミュラツールの前には ソートツール が配置されており、Total Screen Time を降順に並べ替えるように指示しています。上のフォーミュラは、現在の行の Total Screen Time と前の行の Total Screen Time の差を示すフィールドを作っています。これで各人が前の人に追いつくにはどれだけスクリーンタイムを増やす必要があるかを簡単に見ることができます。
多くの場合、複数行フォーミュラツールは、クロスタブツール と組み合わせて使用されます。これは複数の列データをテーブルに変換しようとする場合大変便利です。Alteryx コミュニティメンバーの 1 人は、この投稿 と全く同じ問題でつまつき、これを読んで解決することができました。
複数行フォーミュラツールは、ツールインスタンスごとに 1 つのフィールドのみを更新できます。複数のフィールドを更新したい場合(かつ複数行フォーミュラツールと 複数フィールドフォーミュラツール の両方の使用に抵抗がない場合)は、Public Alteryx Gallery に投稿されている マクロ をお試しください。
これで、複数行フォーミュラツールのエキスパートレベルの習熟度が得られました。他にもユースケースをご存知の場合は、以下のコメント欄でお知らせください!あなたの作成したクリエイティブなツールをツールマスタリーシリーズに投稿したい場合は、community@alteryx.com までお知らせください。
Twitter で Alteryx をフォローして Tool Tuesday の最新の投稿をご確認ください! Designer ツールのすべてをマスターしたい方は、 メールでのお知らせに 登録 されることをお薦めします。