Alteryxで3桁の整数を並べて6桁の整数を作り7で割るをやってみた
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
数学の話で、3桁の整数を並べて6桁の整数を作り7で割ると、3桁の整数がどんなものであっても必ず割り切れるそうです。通常、証明する場合に999個ある整数を1つずつ計算するようなことはしないと思いますが、今回はAlteryxを使って999個ある整数を計算するという力業で確認してみます。
3桁の整数を並べて6桁の整数を作り7で割る
ワークフローの概要
- Generate Rowsツールで整数を準備
- Selectツールで文字列型に変換
- Formuraツールで3桁と6桁の整数を準備
- Selectツールで数値型に変換
- Formuraツールで7で割った結果を出力
- Filterツールで「.」を含むか確認
- Browseツールで結果を確認
ワークフローの詳細
Preparation -> Generate Rows を使って1~999の整数を準備します。Create New Field で新しく「Value」列をInt32型で追加します。Initialization Expression に「1」、Condition Expression に「Value <= 999」、Loop Expression (Usually Increment) に「Value + 1」を設定します。これで1~999の整数が出力されます。
3桁の整数を並べて表示するため、Preparation -> Select を追加して「Value」列を V_WString 型に変換します。
Preparation -> Formula を追加し、まず「Value」列の整数に0を加えて3桁に統一します。新しく「3keta」列を追加し、以下の条件で出力するよう設定します。Data type には V_WString を選択しています。
- 「Value」列の文字列の長さが1の場合は「Value」列のデータの前に「00」を加えて出力
- 「Value」列の文字列の長さが2の場合は「Value」列のデータの前に「0」を加えて出力
- 「Value」列の文字列の長さが3の場合は「Value」列のデータを出力
続いて、新しく「6keta」列を追加し、「3keta」列のデータを並べて出力します。Data type には V_WString を選択しています。
3桁の整数を出力した「3keta」列と、3桁の整数を並べて出力した「6keta」の列ができました。
「6keta」列のデータを7で割るため、Select ツールを使って「6keta」列をInt32型に変更します。
Formula ツールを追加し、「6keta」列のデータを7で割ります。この後Filterツールを使ってデータの確認をするため、Data type には V_WString を選択しています。
結果を確認した限りでは割り切れているようですが、Preparation -> Filter を追加して小数点以下の数値が出力されているデータがあるか確認してみます。Basic filter に対して「Result」列に「.」が含まれているか確認します。「Result」「Contains」「.」と設定します。
T (True) の出力を確認すると、データが何もありません。
F (False) の出力に全て出力されています。
補足
もし割り切れない場合(小数点以下の値があった場合)に「6. Filterツールで「.」を含むか確認」で割り切れなかったデータを抽出できていたのか、念のため確認してみます。
「5. Formuraツールで7で割った結果を出力」を7ではなく3で割ってみると割り切れないデータがあります。
「6. Filterツールで「.」を含むか確認」の出力を確認してみます。T (True) の出力は以下の通りです。
F (False) の出力は以下の通りです。
最後に
今回は3桁の整数を並べて6桁の整数を作り7で割るという計算を試してみました。ちょっとしたネタ的なエントリですが、またネタがありましたらご紹介できればと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。