ナレッジベース - 日本語

エキスパートから学ぶ。

ツールマスタリー | 複数行フォーミュラ

Alteryx
Alteryx
Created
Multi-Row Formula.png

この記事は、Designer ツールの様々な使用例を紹介したサポート情報集であるツールマスタリーシリーズから抜粋したものです。ここでは、Alteryx Designer をマスターする道のりの一部として、複数行フォーミュラツールの使用について掘り下げていきます。

 

複数行フォーミュラツール機能は、通常のフォーミュラツールによく似ていますが、それに複数行のデータを1つので参照できる機能を追加したものです。たとえば、誰かが家の1階にいてフォーミュラツールを持っていたとします。その人は1階にいる人としか話すことができません。しかし複数行フォーミュラツールがあれば、2階、屋根裏、また地下室にいる人たちとも話すことができるのです。

 

 1.jpg

 

複数行フォーミュラツールでは、ユーザーは既存のフィールドを更新、または新しいフィールドを作成できます。どちらのオプションも大変便利であり、多くの使用方法があります。以下の使用例詳細は v11.0 workflow Multi-Row.yxmdに添付されています。

 

2.png

 

既存のフィールドを更新する

 

  • フィールドを「埋める」:

データはエクセルで見栄えの良いように配置されていても、Alteryxでの使用には向いていない場合がよくあります。このような場合には、値がない列を「埋めていく」ことが有効です。

  

3.png

 

この場合、各家族の最初の人のみに苗字が入れられています。そのため、現在Null()である苗字フィールドに変更を加えます。このように簡単に処理することができます。

 

4.png

 

変数と関数を容易に式入力欄に入れるためには、設定の対応するタブをダブルクリックしてください。

 

新しいフィールドを作成する:

  • グループ内の各人にユニークなIDを作成する:

データがきれいになったところで、所属する家族ごとに、その各メンバーにユニークなIDを追加します。このためには、複数行フォーミュラツールを以下のように設定します。

 

5.png

 

新しいフィールドを作成する場合、ユーザーは設定するフィールドタイプを選択することができます。ここでは、Int 16が選択されました。ここでは家族ごとにグループ分けしていることに注意してください。各家族内でIDがユニークであるようにしていますが、違う家族で重複してしまう可能性があります。この新しいIDフィールドは、あとでフィルター集計その他のツールを使用する際に識別子として使用されます。

 

6.png

 

  • 計算を行う:

すぐ前後の行以外の行も参照できなければ、複数行ツールはそれほど便利ではありません。設定のNum行の値を変更することで、式に使用する行数を増やすことができます。

 

この例では、Num行の値を2まで増やしました。設定の中央部で、選択できる変数がさらに増えたことに注目してください。家族ごとの累積和が欲しいので、このフィールドでグループ分けします。

 

7.png

 

この方法は、売上金額、アイテムカウント等、様々なシナリオでの累積和を得るために使用できます。

 

9.png

  

さて、ここでは家族ごとの合計スクリーンタイムの平均を計算します。この複数行フォーミュラツールの式入力欄には、こう書きます:

  

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値を確認し、正しい行を使用して平均を求める式をカスタマイズします。

 

10.png

  

  • 以前との違い:

このツールでまだ変更されていない最後の設定部分は、「存在しない行の値」ドロップダウンです。これは、存在しない行の値(これがドロップダウンの名前になっています)を式に使用する必要がある場合、Alteryxにどの値を使用すればよいか教えるものです。これが起こるのは、例えば、データの最初の行の値を計算する際、式に行1の変数が含まれるような場合です。ユーザーは、その存在しない行の値を何にするか選択することができます。

 

この例では、存在しない行は最も近い値が存在する行を参照するよう設定されています。こうすることで、フォーミュラが行1に[Row -1: Total Screen Time] を使用しようとした際、それが存在しないことがわかると、代わりに行1の値を使用します。これで、出力されている通り、差の0が結果として表示されます。

 

 11.png

 

この複数行フォーミュラツールの前には「ソートツール」が配置されており、Total Screen Timeを降順に並べ替えるように指示しています。上のフォーミュラは、現在の行のTotal Screen Timeと前の行のTotal Screen Timeの差を示すフィールドを作っています。これで各人が前の人に追いつくにはどれだけスクリーンタイムを増やす必要があるかを簡単に見ることができます。

 

12.png

 

多くの場合、複数行フォーミュラツールは、クロスタブツールと組み合わせて使用されます。これは複数の列データをテーブルに変換しようとする場合大変便利です。Alteryxコミュニティメンバーの一人は、この投稿と全く同じ問題に突き当たり、これを読んで解決することができました。

 

複数行フォーミュラツールは、ツールインスタンスごとに1つのフィールドのみを更新できます。複数のフィールドを更新したい場合(かつ複数行フォーミュラツールと複数フィールドフォーミュラツールの両方の使用に抵抗がない場合)は、公開Alteryx Galleryに投稿されているこのマクロをお試しください。

 

ここまでくれば、あなたの複数行フォーミュラツールの使用スキルはエキスパートのレベルまで達したことでしょう!私たちがここで提供していない使用方法があれば、下のコメント欄にぜひ書き込んでください!もうツールマスターを自負していますか?こちらのサイトcommunity@alteryx.com までご連絡いただければ、ツールマスタリーシリーズに、あなたのクリエイティブなツール使用法を掲載いたします。

 

毎週火曜日の #ToolTuesdayに、Twitter @alteryx をフォローして最新の投稿をご確認ください!Designer ツールのすべてをマスターしたい方は、Eメールでのお知らせを購読されることをお薦めします。

添付