Alteryxで行を増やす
こんにちは、小澤です。
今回は、Alteryxで特定のデータを持つ行を増やすためのツールについて紹介させていただきます。
Generate Rowツール
この行を増やすためのツールがGenerate Rowツールとなります。
このツールの設定は以下のようになっています。
基本的な動き
これがどのような設定なのかを順を追って見ていきます。
まず以下のようなデータがあるとします。
name | like_beer |
---|---|
Aさん | 一番搾り |
Bさん | スーパードライ |
Cさん | ハイネケン |
一番上ではGenerate Dataツールで利用する変数を追加するか、既存のフィールドを変更するかを設定します。 ここでは、RowCountとという新しい変数を作成しているものとします。
Generete Rowツールではまず、一番上の「Initialization Expression」の値を先ほどのRowCount設定します。 今回は「1」と設定しているものとします。
次に、この上で設定した値が、「Condition Expression」に書いてある条件を満たすかの確認が行われます。 「RowCount <= 10」と書いている場合、設定した値が1, それが10以下かのチェックなのでこの条件を満たします。 条件を満たすと、その値が各行に追加されます。
name | like_beer | RowCount |
---|---|---|
Aさん | 一番搾り | 1 |
Bさん | スーパードライ | 1 |
Cさん | ハイネケン | 1 |
この追加が終わったのち、一番下の「Loop Expression」が実行され、RowCountの値が変更されます。 「RowCount + 1」とした場合、RowCountに1を足した、「2」が新たな値となります。
この状態で再び、「Condition Expression」に書いてある条件を満たすかの確認が行われます。 2は10以下ですので、この条件は再び満たされます。
その結果、元のデータに新たにこの値を持つデータが追加されます。
name | like_beer | RowCount |
---|---|---|
Aさん | 一番搾り | 1 |
Aさん | 一番搾り | 2 |
Bさん | スーパードライ | 1 |
Bさん | スーパードライ | 2 |
Cさん | ハイネケン | 1 |
Cさん | ハイネケン | 2 |
このように次々と値を変化させていき、その値を持つ行を追加していくのがGenerate Rowツールになります。 元データの全ての行に対して、RowCount以外は同一の値を持つ別な行があたらに追加されます。
今回はCondition Expressionで「RowCount <= 10」としているので、RowCountが10になるまでこの操作が繰り返されます。
name | like_beer | RowCount |
---|---|---|
Aさん | 一番搾り | 1 |
Aさん | 一番搾り | 2 |
... | ... | ... |
Aさん | 一番搾り | 9 |
Aさん | 一番搾り | 10 |
Bさん | スーパードライ | 1 |
Bさん | スーパードライ | 2 |
... | ... | ... |
Bさん | スーパードライ | 9 |
Bさん | スーパードライ | 10 |
Cさん | ハイネケン | 1 |
Cさん | ハイネケン | 2 |
... | ... | ... |
Cさん | ハイネケン | 9 |
Cさん | ハイネケン | 10 |
変数の利用
Generate RowツールはFormulaツールのように他のフィールドの値を参照することも可能です。
以下のようなデータがあるとします。
日付 | 飲んだビールの数 |
---|---|
2017/08/01 | 3 |
2017/08/02 | 2 |
2017/08/03 | 5 |
これに対して、先ほどの「Condition Expression」を「RowCount <= [飲んだビールの数]」に変更したものを利用すると結果は以下のようになります。
日付 | 飲んだビールの数 | RowCount |
---|---|---|
2017/08/01 | 3 | 1 |
2017/08/01 | 3 | 2 |
2017/08/01 | 3 | 3 |
2017/08/02 | 2 | 1 |
2017/08/02 | 2 | 2 |
2017/08/03 | 5 | 1 |
2017/08/03 | 5 | 2 |
2017/08/03 | 5 | 3 |
2017/08/03 | 5 | 4 |
2017/08/03 | 5 | 5 |
「飲んだビールの数」列の数値に応じて、生成される行数が変化しているのが確認できるかと思います。
他の計算式
Generate Rowツールは、行の作成に際して、数値を増やしながらという条件のみに限定されるものではありません。 最終的に、なんども繰り返した際に、Condition Expressionがどこかのタイミングで条件を満たさなくなることさえ保障されていれば、どんな計算式を入れても問題ありません。
ただし、誤って絶対に終わらないような計算式を入れてしまわないように気をつけましょう
終わりに
今回は、AlteryxのGenerate Rowツールについて解説しました。 このGenereate Rowツールがどこで使えるかはなかなか想像がつかない方も多いかと思います。 何らかの理由で、同じものでもデータの量を増やしたいといった場合や、間に抜けている部分があるような場合の保管などに利用可能かと思います。
Alteryxに興味をお持ちいただいた方はこちらからお問い合わせください。