Alteryxの行生成ツールでアルファベットや日付を生成する方法をご紹介します
行生成(Generate Rows)ツールは、使い慣れてくると非常に便利なツールになりますが、なかなかわかりにくいツールかもしれません。通常は一連の数字を生成するツールですが、数字以外のものも生成することが可能です。
通常の使い方
デフォルト設定で実行すると、「RowCount」というフィールドを作成し、1~10の数字が作成されます。
生成する数値を変えたいときは、条件式に「10」と記載されている部分を20にすれば、1~20までの数値が作成されますし、条件式は10のままで初期化式を5に変更すると5~10の数値が作成されます。
数値以外の作り方
応用編として、数値以外のものを作成したいと思います。
日付
日付のリストを生成する際は以下のように設定します。
項目 | 設定内容 | サンプル |
---|---|---|
新しいフィールドを作成する | データ型として「Date」と設定します。フィールド名は自由ですが、条件式、ループ式のフィールド名はあわせてください | フィールド名は「Date」
データ型は「Date」 |
初期化式 | 得たい日付のリストの最初の日を指定します | "2000-01-01" |
条件式 | 得たい日付のリストの最終の日を指定します
例:[新規フィールド名] <= "2000-01-10" とすると、2000年1月10日までの日付を作成します |
Date <= "2000-01-10" |
ループ式 | DateTimeAdd関数を利用します
DateTimeAdd([新規フィールド名],ループするごとに足す数値,単位) で計算式を記載します。 単位を「Month」などにすると一ヶ月足される形になります。ループ式で使用するDateTimeAdd関数については別記事を参照ください。 |
DateTimeAdd(Date,1,"Days") |
応用編
上の例では、日付を直接行生成ツールに記載しましたが、値を頻繁に更新する可能性があるのであれば、値(期間)を外出しにした方が見通しも運用も行いやすいと思います。
アルファベット
アルファベットを作成することもでき、A~Zのアルファベットのリストが欲しい、という際に利用できます。アルファベットのリストを作成するには、様々な関数を必要とします。
設定は以下のとおりです。
項目 | 設定内容 | サンプル |
---|---|---|
新しいフィールドを作成する | データ型として「String」(文字列型)と設定します。フィールド名は自由ですが、条件式、ループ式のフィールド名はあわせてください | フィールド名は「Letter」
データ型は「String」(文字列型なら何でも良いです) |
初期化式 | 得たいアルファベットリストの頭の文字を指定します | "A" |
条件式 | CharToInt関数の利用が必要です。また、比較する値として得たいアルファベットリストの最後の文字を指定します
例:CharToInt([新規フィールド名]) <= "Z" とすると、Zまでの文字を作成します |
CharToInt(Letter) <= CharToInt("Z") |
ループ式 | CharToInt関数で一度数字に戻し、1加えた後にCharFromInt関数で文字列に戻しています。 | CharFromInt(CharToInt(Letter) + 1) |
なお、小文字のリストを作成したいということであれば、初期化式の「A」を「a」に、条件式の「Z」を「z」にすれば取得可能です。
応用編
上の例では、小文字もしくは大文字のアルファベットのリストを取得していますが、一度に大文字、小文字のリストを取得する方法をご紹介します。
小文字、大文字を別々に作成しユニオンで結合する形でも可能ですが、一気にA-zで作成し、不要な記号をクレンジングで削除する方法があります(クレンジング後はフィルタツールでNullを取り除きます)。
まとめ
行生成ツールを使用して、数値以外のアルファベットリストや日付のリストを作成する方法を紹介しました。
よく使うようであればマクロ化すると効率化できるかと思います。
サンプルワークフローダウンロード
GenerateRow_Sample fa-download
※Alteryx Designer 2019.4.4.20206時点の情報となります