Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

複数の条件に対して順位をつけたい

Marumouke
メテオール

Alteryx初心者です。
バラバラになっているデータを日付、伝票番号でグループ化しそれに対してグループ化し注文ごとに順位をつけたいのですが、
複数フィールドフォーミラツールで検討していますが、
使用するツール含めどういったWFを組めばよいでしょうか。
元のデータの状態と欲しい結果のイメージをExcelで作成しましたので、添付します。

7件の返信7
gawa
15 - Aurora
15 - Aurora

添付画像より:

・日付/注文時間/伝票番号の3つを固有値として時系列で注文順位をつけたい

・伝票番号でグループ化したい(伝票番号が変わると再度1から順位つける)

という処理と解釈しました。

その前提で、2通りのやり方を紹介します。添付のワークフローをご覧ください。①のタイルを使った方法が楽かと思います。

※ワークフローの入力データは添付画像右側のソートされた状態としております。左側の表は再現困難だったため、ご容赦ください

 

①タイルを使う方法

タイルツールで

タイル法:固有値

固有列:日付/注文時間/伝票番号

列でグループ化:伝票番号

と設定すればOKです。グループ化処理している都合、タイル出力ではデータが伝票番号順にソートされておりますので、後は望ましい形にソートすればOKです(添付では日付⇒伝票番号⇒注文時間でソートしました)。

タイルツールは元のデータが未ソート(添付いただいた画像左の状態)であってもOKです。

②複数行フォーミュラを使う方法

グループ化:伝票番号

条件式は、日付/注文時間/伝票番号のフィールドに対して一行前(Row-1)と現在の行(Row+0)を比較して

⇒全て同じなら注文順位は一行前(Row-1)と同じ

⇒そうでなければ(ELSE) 一行前(Row-1)+1

というように設定すればよいです。タイルツール同様、グループ化処理している都合、複数行フォーミュラ出力では伝票番号順にソートされておりますので、同様に必要に応じてソートしてください。

タイルツールと異なり、上から順に処理されていきますので、元のデータが未ソートですと、思ったような結果が出ないはずですのでご注意ください。

 

何か参考になれば幸いです。

AkimasaKajitani
17 - Castor
17 - Castor

@Marumouke さん

 

頂いたイメージのような場合は、「タイルツール」が簡単です(もちろん複数行フォーミュラでも可能です)。

 

AkimasaKajitani_1-1632390050735.png

 

設定は以下のような形になります。

日付、注文時間が異なると番号がインクリメント(+1)されるというのが、伝票番号ごとにふられるといった感じですかね・・・。

ここでは、伝票番号ごとにグループ化し、日付と注文時間ごとに番号がつくようなイメージで設定しています。

 

AkimasaKajitani_0-1632390039364.png

 

結果としては、頂いたイメージの注文順位がTile_Numになります。

 

AkimasaKajitani_2-1632390061242.png

 

タイルツール、グループと固有列のところの設定がわかりにくい気もしますので、色々設定してみて慣れて下さい。

Marumouke
メテオール

@gawa さん @AkimasaKajitani さん

ご教示頂いたタイルツールで簡単に解決しました!
大変助かりました。ありがとうございます。

複数行フォーミラツールを使用するのは今後の貴重な参考にさせていただきます。


AkimasaKajitani
17 - Castor
17 - Castor

@Marumouke さん

 

私も最初はタイルツールを知らずに、複数行フォーミュラばかりつかっていました・・・。複数行フォーミュラは汎用性があるので、色々できて便利です。

 

Marumouke
メテオール

@AkimasaKajitani さん
そうだったんですね!タイルツールは目にしたことはあったもののどういう使い方するものなのか全くわかっていませんでした。
ただ、「フォーミラ」とつくツールは使いこなせるようになりたいと思います。

AkimasaKajitani
17 - Castor
17 - Castor

@Marumouke さん

 

フォーミュラ系ツールは重要です!

フォーミュラ、複数行フォーミュラ、複数フィールドフォーミュラ、いずれも必須ツールですのでぜひ使いこなせるようにしてください!

関数使いこなせると強力です!(空間処理も含めてフォーミュラツールのみで完結できたりもしますので)

Marumouke
メテオール

はい。初心者でついフォーミラ系ツールは避けがちな所がありましたが、
さわっていくうちにフォーミラ系を使いこなせることの重要性と利便性を実感しております。
ありがとうございます!