AlteryxのUniqueツールの動きをちゃんと理解しておく

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

こんにちは、小澤です。

「データの重複を削除したい!」 よくある話ですね。

Alteryxでは、Uniqueツールを利用することで簡単にこれを実現できます。

ちなみに私は勝手に"雪印ツール"と呼んでいます(気になった人は雪印のロゴを調べて確認してください)。

重複を削除するだけなのに「ちゃんと理解しておく」?

さて、このUniqueツールですが、機能としては重複削除です。 何も難しいことはなさそうですが、何を「ちゃんと理解しておく」のでしょうか?

このツールには、対象となる列を選択する設定があり、その内容によって結果が異なります。 以下のようなデータに対して、設定を変更した場合どのように結果が変わるのかみてみましょう。

なお、じょんすみすは時間軸の移動は行っておりません。

すべてにチェックを入れた場合

まずは全ての列にチェックを入れてみます。

重複が削除された結果以下のようなデータになります。

また、削除されたデータは以下のようになります。

全く同じ内容の列が削除されています。 事前にソートしいなくても削除されるのが確認できるかと思います。

チェックを入れていない項目がある場合

さて、続いては以下のような感じにしてみましょう。

獲得ポイントにチェックを入れていません。

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

削除されたデータは以下のようになります。

獲得ポイントに関わらず、first_name, last_nameで重複が削除されているのが確認できるかと思います。

さて、ここからUniqueツールのポイントになります。 獲得ポイントにチェックが入っていない場合、じょんこなーに関する以下の2つのデータはどちらか1つになります。

first_name last_name 獲得ポイント
じょん こなー 10
じょん こなー 30

このポイントというのが何を獲得しているのかよくわかりませんが、どちら一方が削除されるのであればどちらが削除されるのでしょうか?

この結果には決まったルールがあります。 それは、重複削除によって生き残るのは一番最初に出てくるデータとなります。 この場合と獲得ポイントが10ポイントの方が常に残ります。

これは、重複によって削除されるデータが何行あろうと常に同じ動きとなります。 そのため、今回の結果で残るものは常に

  • 1行目のじょんすみす
  • 3行目のじょんこなー
  • 5行目のじょんたいたー

となります。

同様に、first_nameのみにチェックを入れた場合は常に1行目のじょんすみすのみが生き残ります。

Uniqueでこのような指定をする場合はチェックを入れていない列は必要ない場合が多いかもしれませんが、一応この動きは覚えておくと便利でしょう。 例えば、各ユーザごとのベストタイムを出すなんて場合はtimeでソートしてからユーザ名で重複削除なんて使い方ができるかもしれません。

おわりに

こんかいは、Uniqueツールの動きについて確認しておきました。

この動きは知っておかないと思わぬところでハマるかもしれませんのでご注意ください。

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

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

alteryx_960x400