Alteryxで順位をつけたい

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

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

このシリーズでは、Alteryxを触り始めた際に出てくる「こうしたいけどやり方が分からない」「どのツールを使えばいいか分からない」といった疑問を切り口として、Alteryxの機能をご紹介していきます。

今回のテーマは、「順位をつけたい」です。

順位をつけたい

ワークフロー全体

今回作成するワークフローでは、Input Dataツールにてファイルを読み込んだのち、

  1. Sortツールで順番の並べ替え
  2. Record IDツールで順位付け

という処理を行います。

表

上の表には、「Score」という項目があります。この項目の数値が大きい順に順位をつけていきます。

まずは[Preparation]→[Sort]を追加し、「Score」の項目を[Descending]で降順に並べ替えます。

Sort

順位をつけるために[Preparation]→[Record ID]を使用します。[Record ID]を使用すると、新しく列が追加され、1ずつ増加する数値が割り当てられます。今回は「Rank」という項目を初めの列に追加し、番号を1から割り当てます。

Record ID

これで順位をつけることができました。

同じ順位を割り当てたい

表

上の表の場合、「Score」が同じ人が複数います。今度は「Score」が同じ場合には同じ順位に割り当てる方法を考えてみます。

ワークフロー全体

上のワークフローでは、Input Dataツールにてファイルを読み込んだのち、

  1. SummarizeツールでScoreをグループ化
  2. Sortツールで順番の並べ替え
  3. Record IDツールで順位付け
  4. Joinツールでデータの結合
  5. Sortツールで順番の並べ替え

という処理を行います。

まず、[Transform]→[Summarize]を追加します。Summarizeツールでは、[Fields]にて「Score」を選択し、[Actions]にて[Add]→[Group By]を選択。「Score」でグループ化します。

Summarize

先ほどと同じように、Sortツールで並べ替えをして、Record IDツールで順位をつけます。

Sort後のRecord ID

[Join]→[Join]を追加し、Input Dataツール(元の表のデータ)とRecord IDツール(Scoreに順位をつけたデータ)と接続します。[Join by Specific Fields]には、どちらのデータも「Score」を選択します。[Options]では、見やすいように不要な項目の削除と、項目の並べ替えを行っています。

Joinの設定

出力結果を見てみると、「Score」が同じ場合は「Rank」を同じにすることができました。

Joinの結果

「Rank」の数値が降順で表示されているので、最後にSortツールで昇順に並べ替えして完成。

出力結果

最後に

今回は順位をつける方法をご紹介しました。これからもAlteryxの機能をご紹介していきます。

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

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

alteryx_960x400