【Alteryx 小ネタ】数字を並べ替えする際に気を付ける点について

2022.11.28

アライアンス統括部の清水です。

今日は小ネタですが、AlteryxDesignerで加工した数字のデータの並べ替えに関して、つまずきがちな点をご紹介します。

数字を並べ替えが正しくできない

こういった経験ありませんか?

皆様、これまでに一度は数字の並べ替えをした時に、このような経験ないでしょうか?

AlteryxDesigner上のみに関わらず、他の製品でソートをした際でも起きる現象です。

「2」の次は、「20」ではなく「3」、「4」、「5」にしたいのになぜこうなる?といったケースです。

なぜ起きるか?

まずは、この数字が「文字列」なのか「数値型」なのかといったデータ型を気にする必要があります。

Alteryxでのデータの型とその役割

今回のケースですと、一見数値に見えるこのデータも、「文字列」としてデータが保持されていたため「数値」として並べ替えを行いたい際に、そうならないといった結果になります。

※なお、レコードのIDといったように集計が不必要なデータももちろん存在するかと思います。その場合は、データ型を変更してしまうとそのあとのデータ処理で数値として扱われてしまうため、データ型を変更する以外の方法で対処してください。

対処法

データ型を変更し文字列ではなく数値として扱う

  • 「セレクトツール」を利用して、データ型を変更します。

[Alteryx Designer:ツールのご紹介]セレクトツールについて

  • また最初にデータを入力した際に、自動で適切なデータ型に変更してくれるツールもあります。

オートフィールドツール

 

文字列にしておきたい場合、桁数を揃える

このケースの場合は、データがすべて桁数が同じ場合利用が可能です。

  • Formula(フォーミュラ)ツールを利用し関数を利用することで、桁数を同じにし、ソートしても順番が正しく表示されます。
PadLeft([CustomerID], 3, “0”)
関数名(フィールド名、桁数、追加したい文字)

結果は以下の通りです。

[2]を[002]に変換したことにより、正しい順番で並べ替えが可能になりました。同じように電話番号といった桁数が同じものでも、この関数が利用できます。

レコードIDツールの利用

レコード IDツールとは、レコード ID を使用して、データ内に新しい列を作成し、データ内の各レコードに対して順次増分する一意の識別子を割り当てれるものです。

  • レコードIDツールで、文字列を指定し、桁数を指定します。(以下の例だと3桁)

結果はこのようになります。

ちなみに、先ほどご紹介した「Customer ID」列とはデータが異なってしまうため、既存のデータのソートとは異なるのでご注意ください。

おわりに

文字列と数値のデータ型が、そもそも以前の私もよくわかっておらず、エクセルやスプレッドシードで同じような課題にぶち当たったことがあるので書いてみました。

どなたかの参考になると嬉しいです。