Alteryxチームでプチハッカソンをやってみた カンマを消すよ編

2018.10.23

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

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

先日、社内でAlteryxの使い方についての問い合わせがあり、Alteryxチーム内でそれぞれ回答を持ち寄りました。実際にはハッカソンというわけではありませんが、その時の模様をご紹介いたします。

プチハッカソン カンマ消すよ編

お題

「1,234.56」のように数字にカンマが含まれている場合、Alteryxは文字列として認識します。これを数値として出力するにはどうしたらいいか、という問い合わせがありました。

Selectツールで確認すると、String型になっています。これをDouble型に変換しようとするとエラーメッセージが出力され、カンマが邪魔になっていることが分かります。

回答1

まずは私の回答です。カンマより前の数字とカンマより後の数字を並べて表示することで、カンマを消した数字を作れるのではと考え、以下のワークフローを作成しました。

Formuraツールに「Left([フィールド名], Length([フィールド名])-7) + Right([フィールド名], 6)」と設定し、右から7文字目より前にある数字と右から6文字以内の筋を並べて新しい列に出力します。新しい列はV_WString型を設定しています。

Selectツールを使ってV_WString型からDouble型に変換します。

これで元のデータを数値型として出力したものができました。

ダメ出し

ここでじょんすみす氏から、以下のようなデータの場合に対応できるか、というダメ出しが。

回答1のワークフローは、右から7文字目にカンマがあることが前提となっています。そのため、桁数が増えた場合などには対応することができません。

回答2

じょんすみす氏の回答。RegExツールを使ってカンマを削除します。

RegExツールではRegular Expression にカンマを指定、Output Method にReplace を設定します。

カンマを削除したデータをSelectツールでDouble型に変換して完了です。

回答3

チャットワークにて様子を見ていた兼本氏がそっとつぶやいていきました。

tonumber(Replace([フィールド名], ",", ""))

Replace関数でカンマを消してから、ToNumber関数で数値にしてます。カンマを消すことと数値型への変換を両方やっていますので、Formuraツール1つで対応できます。

Formuraツールに上述の式を設定し、Double型で新しい列にデータを出力して完了です。

最後に

弊社のAlteryxチームでのプチハッカソンの様子をご紹介しました。対応する方法がいくつもあるため、簡単なお題であっても人によって異なる回答になりました。Alteryxのユーザー同士でお題と回答を持ち寄るとおもしろいかもしれません。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400