Alteryx初心者です。
バラバラになっているデータを日付、伝票番号でグループ化しそれに対してグループ化し注文ごとに順位をつけたいのですが、
複数フィールドフォーミラツールで検討していますが、
使用するツール含めどういったWFを組めばよいでしょうか。
元のデータの状態と欲しい結果のイメージをExcelで作成しましたので、添付します。
解決済! 解決策の投稿を見る。
添付画像より:
・日付/注文時間/伝票番号の3つを固有値として時系列で注文順位をつけたい
・伝票番号でグループ化したい(伝票番号が変わると再度1から順位つける)
という処理と解釈しました。
その前提で、2通りのやり方を紹介します。添付のワークフローをご覧ください。①のタイルを使った方法が楽かと思います。
※ワークフローの入力データは添付画像右側のソートされた状態としております。左側の表は再現困難だったため、ご容赦ください
①タイルを使う方法
タイルツールで
タイル法:固有値
固有列:日付/注文時間/伝票番号
列でグループ化:伝票番号
と設定すればOKです。グループ化処理している都合、タイル出力ではデータが伝票番号順にソートされておりますので、後は望ましい形にソートすればOKです(添付では日付⇒伝票番号⇒注文時間でソートしました)。
タイルツールは元のデータが未ソート(添付いただいた画像左の状態)であってもOKです。
②複数行フォーミュラを使う方法
グループ化:伝票番号
条件式は、日付/注文時間/伝票番号のフィールドに対して一行前(Row-1)と現在の行(Row+0)を比較して
⇒全て同じなら注文順位は一行前(Row-1)と同じ
⇒そうでなければ(ELSE) 一行前(Row-1)+1
というように設定すればよいです。タイルツール同様、グループ化処理している都合、複数行フォーミュラ出力では伝票番号順にソートされておりますので、同様に必要に応じてソートしてください。
タイルツールと異なり、上から順に処理されていきますので、元のデータが未ソートですと、思ったような結果が出ないはずですのでご注意ください。
何か参考になれば幸いです。
@Marumouke さん
頂いたイメージのような場合は、「タイルツール」が簡単です(もちろん複数行フォーミュラでも可能です)。
設定は以下のような形になります。
日付、注文時間が異なると番号がインクリメント(+1)されるというのが、伝票番号ごとにふられるといった感じですかね・・・。
ここでは、伝票番号ごとにグループ化し、日付と注文時間ごとに番号がつくようなイメージで設定しています。
結果としては、頂いたイメージの注文順位がTile_Numになります。
タイルツール、グループと固有列のところの設定がわかりにくい気もしますので、色々設定してみて慣れて下さい。
@gawa さん @AkimasaKajitani さん
ご教示頂いたタイルツールで簡単に解決しました!
大変助かりました。ありがとうございます。
複数行フォーミラツールを使用するのは今後の貴重な参考にさせていただきます。
@AkimasaKajitani さん
そうだったんですね!タイルツールは目にしたことはあったもののどういう使い方するものなのか全くわかっていませんでした。
ただ、「フォーミラ」とつくツールは使いこなせるようになりたいと思います。
@Marumouke さん
フォーミュラ系ツールは重要です!
フォーミュラ、複数行フォーミュラ、複数フィールドフォーミュラ、いずれも必須ツールですのでぜひ使いこなせるようにしてください!
関数使いこなせると強力です!(空間処理も含めてフォーミュラツールのみで完結できたりもしますので)
はい。初心者でついフォーミラ系ツールは避けがちな所がありましたが、
さわっていくうちにフォーミラ系を使いこなせることの重要性と利便性を実感しております。
ありがとうございます!