Alteryxで行を増やす

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

今回は、Alteryxで特定のデータを持つ行を増やすためのツールについて紹介させていただきます。

Generate Rowツール

この行を増やすためのツールがGenerate Rowツールとなります。

image30

このツールの設定は以下のようになっています。

スクリーンショット 2017-08-25 11.47.06

基本的な動き

これがどのような設定なのかを順を追って見ていきます。

まず以下のようなデータがあるとします。

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に興味をお持ちいただいた方はこちらからお問い合わせください。

alteryx_960x400