Preppin’ Dataは海外のTableau Prepユーザーの方が毎週課題を出してみんなで解いていきましょう、というAlteryxのWeekly Challengeと同じような形態を取っているものです。2019年から開始しているのでTableau Prepがリリースされた次の年くらいから始まっているようです。
Preppin’ Dataの主催者の方の一人はAlteryxユーザーのようですので(しかもExpert/Predictive Masterをお持ちのマジのプロフェッショナルですね)、気兼ねなくAlteryxでやってみたいと思います(たまにTwitter(X)でもAlteryxでされている方がいらっしゃいますね)。
ここでは、備忘録的に私がやった感想を書いていきたいと思います。
- 2024
- 初級レベル
- 中級レベル
- 2024: Week 6 – Staff Income Tax
- 2024: Week 7 – Valentine’s Day
- 2024: Week 8 – Prep Air Loyalty
- 2024: Week 9 – Prep Air Capacity
- 2024: Week 10 – Preppin’ for Pulse
- 2024: Week 11 – 13 months in a year
- 2024: Week 12 – Graduate Student Loan Repayments
- 2024: Week 13 – Easter Sales
- 2024: Week 14 – Store Data
- 2024: Week 15 – Store Data Part 2
- 2024: Week 16 – Budget vs Actuals
- 2024: Week 17 – Budget vs Actuals Part 2
- 2024: Week 18 – San Diego Zoo TC24 Special
- 2024: Week 19 – SuperBytes Sales and Profits
- 2024: Week 20 – SuperBytes Customer Data
- 2024: Week 21 – Loyalty Points Percentages
- 2024: Week 22 – Top 5 Loyal Customers
- 2024: Week 23 – SuperBytes Salaries
- 2024: Week 24 – SuperBytes Salaries Part 2
- 2024: Week 25 – SuperBytes Customer Complaints
- 2024: Week 26 – SuperBytes Customer Complaints Part 2
- 2024: Week 27 – Tour de France special
- 2024: Week 28 – Wimbledon Special
- 2024: Week 29 – Formula 1 Qualifying Special
- 2024: Week 30 – International Football Special
- 2024: Week 31 – Olympics Special
- 2024: Week 32 – Pokémon Card Organising
- 2024: Week 33 – The Prep School Birthday Cakes part 2
- 2024: Week 34 – The Prep School Birthday Cakes part 3
- 2024: Week 35 – Premier League Results
- 2024: Week 36 – Premier League Standings
- 2024: Week 37 – Premier League recent form
- 2024: Week 38 Preppin’ Consultancy Days
- 2024: Week 39 – Preppin’ Consultancy Ranks
- 2024: Week 40 – Vrroom
- 2024: Week 41 – Forbes Highest Paid Athletes
- 2024: Week 42 – Strictly Come Dancing
- 2024: Week 43 – MiniBytes Worst Selling Products
- 2024: Week 44 – MiniBytes Returns Analysis
- 2024: Week 45 – SuperBytes Stock
- 2024: Week 46 – DataFam Europe Special
- 2024: Week 48 – Cross Sport League Table Ranks
- 2024: Week 49 – Jersey Number Analytics
- 2024: Week 50 – Life Expectancy
- 2024: Week 51 – Strictly Positive Improvements?
- 2024: Week 52 – Naughty or Nice?
2024
初級レベル
2024: Week 1 – Prep Air’s Flow Card

7ツールで完了。難易度★★。
基礎的な処理ばかりですが、「//」(複数文字をトリガーにした行分割)で行分割はできないので、パイプに置換して(区切り文字1文字に置換)から行分割するテクニックを使用しています。
2024: Week 2 – Average Price Analysis

10ツールで完了。難易度★★。別解で9ツール。別解はちょっとしたトリックを使って集計した項目ごとにクロスタブを使うのではなく、クロスタブ一発で出せるようにしています。とはいえ、ちょっと頭をひねらないといけないので、基本的には個別にクロスタブした方が楽ですね。
また、今回はクオーターを出しているので2024.1の新関数DateTimeQuarterを初めて使いました。
ちなみに、問題文の列の名前の変更を、、、とありますが、EconomyとPremiumはテレコになってましたが、それ以外はあっているように思います。
2024: Week 3 Performance Against Targets

12ツールで完了(厳密にやればもっと減らせると思います)。難易度★★。
一つのExcelファイルから複数シートを読み込むのにシートリストを読み込んでから動的入力ツールで実際のデータを読み込んでいます。
答えのDateカラムになぜ月が入るのかが謎・・・。
2024: Week 4 – Unpopular Seats

7ツールで完了。難易度★★。
一つのExcelファイルから複数シートを読み込むのにシートリストを読み込んでから動的入力ツールで実際のデータを読み込んでいます。これにより、Flow Card系のシートを一括で読み込むことができます。選択されていない座席を調べるために、結合ツールで結合した際、R出力側を使うことで特定しています(よくあるリストを使ったフィルタです)。
2024: Week 5 – Getting the right data

13ツールで完了。難易度★★★。
ベーシックな結合問題ですが、顧客のグループ分けがDateTimeDiffでMonth指定だと結果が一致しない。結局日付レベルで算出して、1ヶ月を30日として計算して結果を合致させました。
また、単一Excelブックへの複数シート書き込みは注意が必要。AMP/E1エンジンで挙動が変化しますが、今回はAMPオンで何もせずうまく書き込めました。
中級レベル
2024: Week 6 – Staff Income Tax

6ツールで完了。難易度★★★。
元データはよく見るタイプの横持ちデータ。Taxの計算は指定された幅ごとに計算する必要があり、複雑。ただし、固定値だとそこまで複雑ではなく、テーブルを可変にしても動くように作ろうとするとそれなりの難易度になります(が、それはそれで良い課題)。
2024: Week 7 – Valentine’s Day

7~9ツールで完了。難易度★★。
Tableau(Prep)のDateDiff関数の仕様がおかしいため工夫を求めている(ように見える)問題。Alteryxでは普通にDateTimeDiff関数でバレンタインデーとの年数を計算すればオッケー(+1は必要)。その他、行生成ツールで日を作り出してバレンタインデーだけカウントすることも可能。
いずれにしても、行生成ツールで日を作るソリューションには慣れておくべきです。
2024: Week 8 – Prep Air Loyalty

23ツールで完了。難易度★★★。
全然結果が合わなかったのですが、普通に問題を読み違えてました・・・。結果を2パターンシミュレーションするのにパラメータを使う、というのはTableauならでは、という感じがしました(Alteryxであれば、インターフェースつけて選択できるようにするので)。年間コストの出し方など若干独特な部分に戸惑いながら進んだ感じです。
2024: Week 9 – Prep Air Capacity

11ツールで完了。難易度★★★。
飛行機の予約と席がどれくらい埋まっているのかを出す問題ですが、キャンセルされてる処理をどう扱うか最初ピンと来なかったのですが、結局単純な処理でいけました。
答えは、、、あいませんでした。何かしら処理の順番が根本的に違うところがあり、並び順、顧客ID順で色々とやってもあいません。とはいえ、同じ日に予約した人の順番が入れ替わるだけなのでオッケーとしたいと思います。
2024: Week 10 – Preppin’ for Pulse

かなりの超大作になりました。26ツールで完了。難易度★★★★。
この規模になると出題者の意図として細かいところまで気が配れているのか、という疑問がちょこちょこと処理の途中で垣間見えます。まぁ、元データを完璧に理解しているわけではないのでこれでいいんだ、と言われるとそれまでですが・・・(ロイヤリティがNullのデータはProfitがNullで本当に良いの?とか・・・)。
いろんなところにちょこちょこと罠が仕込まれていて(Loyarlty_Tierの誤字とか細かく指示されてない処理ポイントがいくつかありました)、かなり実践的であるかと思います。
ちなみに、微妙に答えがあいません。なぜか異なるQuantity、Profitの端数もちょこちょこと違う・・・。
2024: Week 11 – 13 months in a year

6ツールで完了。面倒だったので入力ファイルは使っていません。難易度★★。
複数行フォーミュラ大活躍の回。工夫すればタイルツールでもできると思われます。
2024: Week 12 – Graduate Student Loan Repayments

13ツールで完了。難易度★★★★★。
複利の式が非常にわかりにくい。また、「Interest to be added next month」は計算方法について解説されておらず、何を計算すればいいかがわかりにくい。何を計算すればいいのかヒントがなく類推しにくいので、ノーヒントでは非常に厳しい問題(制度を知っていればいいのかもしれませんが、日本人には馴染がなさすぎです)。
2024: Week 13 – Easter Sales

7ツールで完了。難易度★★。
シンプルですが、個人的にあまり週番号での表現を行ったことがないので目新しい感じでした(Weekly Challengeでも週番号を扱った問題はあまり出た記憶がありません)。特に、年ごとに最初の週を1にするというやり方は初です。
2024: Week 14 – Store Data

7ツールで完了。難易度★。
シンプルな問題ですが、業務で考えた時に店舗IDを無視して集計していいのかどうかはしっかり確認しないと同じ店舗名あるんですけど、的な問題・・・。あえて出力は異なったまま出しています。IDがあるならまずはID単位で集計すべきに思います。そういう教訓を考えると別の意味で良い問題です。
2024: Week 15 – Store Data Part 2

11ツールで完了。難易度★★。
シンプルな問題ですが、最初にRecall Itemsを当たり前のように結合しないといけないのに気づかないと結果が合わなくなって焦るやつです。それ以外は至って普通。いずれにしても、Week14からの続きなので本来は店名重複しているので、StoreNumber単位でやらないといけないんじゃないか疑惑は残ったままです。
2024: Week 16 – Budget vs Actuals

9ツールで完了。難易度★。
マッチング列をそのままマッチさせるとうまくマッチしないので工夫が必要ですが、非常にシンプルな問題。
2024: Week 17 – Budget vs Actuals Part 2


本編16ツール、マクロ内9ツール、合計25ツールで完了。難易度★★★★。
Excelファイルの各シートのスキーマが異なるためバッチマクロが必要(なため、難易度を高めに設定しました。バッチがわかっていれば、難易度★★くらいでしょうか)。年間合計の支出が超えたカテゴリだけが対象ということで、若干回りくどい処理をしています(後で見てわかりやすくするためです)。データの加工と年間支出の処理をまとめることもできますが、あとで見てやり方が変わるような時を考えると、処理は分離した方が良いと思います(保守性の観点)。
つまり以下のようになりますが、やり方が変わると処理のメイン部分に手を加えなければならないため、保守性に問題あると考えます。

2024: Week 18 – San Diego Zoo TC24 Special
Part1

Part2

Part1と2に分かれたスペシャル問題。Part1は7ツールで完了。Part2は20ツールで完了。難易度★★★。
基本的に長くはありますが、それぞれの難易度は高くないと思います。ただ、最後の答えの部分でStatusがNullのところはPriorityもNullだ、となっていて、いや、そこはプライオリティつければいいじゃんって感じはしました。気にしなければ正直どうでも良いポイントです。SanDiegoの気温をどうしたいのか、とか問題文から雰囲気で読み取らないといけなかったり・・・。
2024: Week 19 – SuperBytes Sales and Profits

5ツールで完了。難易度★★。
Week4のようにExcelから複数シートを読み込むのがメインの問題。単位にKやMをついている部分をキレイにする、というところがポイントでしょうか。
2024: Week 20 – SuperBytes Customer Data

12ツールで完了。難易度★★★★。
簡単!と見せかけて、Rank付けに一捻り(同一順位があったら人数分飛ばす)。また、日付のシリアル値、レシート番号のE表記の修正が必要など、地味に難易度高い問題。
2024: Week 21 – Loyalty Points Percentages

5ツールで完了。難易度★★。
スタンダードな問題。割合を出すところは、クロスタブの使い方がわかっていればスッキリしたフローになります。とはいえ、初心者の方は無理にまとめなくてもいい気もします。まずはできることが大事です。逆に、上級者はクロスタブでがんばってほしいです。
2024: Week 22 – Top 5 Loyal Customers

11ツールで完了。難易度★★。
結構素直な問題でしたが、Rankの出し方だけ注意が必要です(要件に出し方が書かれていないので、結果を出して戸惑う感じですね・・・)。
2024: Week 23 – SuperBytes Salaries

7ツールで完了。難易度★★★。
End dateがトラップ問題。元データをしっかり見れば理解できます(元データ以外だと気づきにくい)。それ以外は普通。
2024: Week 24 – SuperBytes Salaries Part 2

10ツールで完了。難易度★★★★。
この問題は、、、結論的には数値が合わないです。なぜなら解答がおかしいからです。Prepの日付の行生成のところで、半端なところで終わる時に最終日が生成されてしまい、同じ週にダブルカウントしてしまうのが排除できていないので結果がおかしくなっています。具体的な例として2017-01-29の週でダブルカウントで大きな数値になっています(実際にデータをよく見ると明らかにおかしいです)。
相変わらずテキストと日付が混ざった行のトラップは回避する必要があります。また、Alteryxは週単位の処理がデフォルトで用意されていないので自分でなんとかする必要があります。この週の処理が若干面倒なので、難易度を高めにしてみました。日付はすべて週頭にまるめてから処理を行うようにしました。正直週のどこで給料払ってるの?途中でいなくなっても払うの?とか現実で考えた時はよくわからない部分があるので、悩ましいところです(ざっくり出すなら決めだけの問題でしょうが・・・)。
2024: Week 25 – SuperBytes Customer Complaints

8ツールで完了。難易度★★★。
日付データのクリーニングが難易度高い(とはいえ、23を乗り越えれば★くらいの問題)。それ以外は普通。
2024: Week 26 – SuperBytes Customer Complaints Part 2

8ツールで完了。難易度★★★。
日付データにクリーニングが必要なのは相変わらずですが、「進行中の苦情のみを出力するか、終了した苦情のみを出力するかをユーザーが選択できるようにパラメータを作成」とのことなので、AlteryxではYXWZ(分析アプリ)として作成してみました。今回はちょっとしたトリックを使って2つのデータ出力ツールを置かず、一つのデータ出力ツールで「フィールドからファイル/テーブル名を取得する」オプションを使い、前段のフィルターでどちらのファイルにするかデータを絞っています。
ちなみに、分析アプリにすると、以下のような画面が出てきて出力を選択することができます。

2024: Week 27 – Tour de France special

12ツールで完了。難易度★★。
いくつか結果から逆算して必要項目を作成している部分がありますが、基本的には、、、素直な問題だと思います(まぁ、本文に細かい指示がないので)。個人的には、翻訳を使わず英語で読んでいたら難易度が上がった感じですね・・・。
2024: Week 28 – Wimbledon Special

31ツールで完了。難易度★★★★。
とにかく色々と複雑で時間がかかる問題でした・・・(時間がかかるので★+1)。順位はさくっとでないので工夫が必要です。最後の勝ち年、性別、シングルとダブルスどっちも勝ってる、など色々と要素が多いので最終形が見えてないと結構時間を無駄にするような感じです。個人的には、翻訳を使わず英語で読んでいたので難易度が上がった感じですね・・・。
2024: Week 29 – Formula 1 Qualifying Special

24ツールで完了。難易度★★。
かなりシンプルな問題でした。特に難しいところもないので難易度★でもいいのですが、長いので★2としました。とはいえ、F1はルールを知っていてやりたいことがわかっているので、あまり問題文を読み込まなくてもすんなりできた感じがします。
2024: Week 30 – International Football Special

18ツールで完了。難易度★★★。
「International Competitions table」と「Result Table」を結合するところでいい方法がなかったので、結局どのトーナメントと組み合わせるかは目で見て確認する方向で行いました。また、思わせぶりに書いている「CONCACAF選手権では、正しいサッカー協会と大会に加入していることを確認してください。」がめちゃくちゃ罠です。というか、そもそもどういうこと?というレベルで意味がわからずハマってました・・・。正直それ以外はシンプルな問題です。
2024: Week 31 – Olympics Special

13ツールで完了。難易度★★。
非常に素直な問題でした。特筆すべきところもないと思います。ただ、転置とクロスタブ、正規表現、複数行フォーミュラと一通り理解していないと難しいかもしれません。これがさくっとできることがAlteryx使いの最初の目標になるかと思います(Coreレベルだと結構苦戦する気がします)。
2024: Week 32 – Pokémon Card Organising

12ツールで完了。難易度★★★。
ポケモンカードの意味がわかってないというところに苦戦(ドメイン知識不足)。どれがジムリーダーカード、Gymカード、トレーナーカードの残り、、、????でした。結局ErikaのCharityの位置は特別対応で合わせこみましたが、なぜここに来るのかがさっぱりわからないです・・・(ドメイン知識なのか解答のロジックミスなのか・・・)。本来の難易度は★~★★だと思われます。
2024: Week 33 – The Prep School Birthday Cakes part 2

13ツールで完了。難易度★★★。
ベーシックな手法はそれほど問題なかったですが(とはいえ、休みの期間だったら前の金曜日を取るってのもなかなか難しいとは思います)、Term、Half Termの意味がよくわからず時間が取られた感じです。結局結果を出してみて答えと合わなかったらこういう意味なのね、と類推しながら進めました。というか、ファイル名でどういうファイルなのか非常にわかりにくいです(PD 2024 Wk33 Inputって・・・Wk33って・・・何?)。日本の大学とかがモデルならもっとすっと入ってくるんでしょうが海外がモデルだとそもそも言葉がわかりにくいですね・・・。
2024: Week 34 – The Prep School Birthday Cakes part 3

23ツールで完了。難易度★★★★。
ほぼロジックの組み直しです。期間のリストが重複しているので、日付をばらばらにして解析をしています。休みのみにすることで、日が連続していれば前の行との日の差分は1という性質を使い、1が連続していたら1ずつ足す。そうでなければ1にする、ということで直前の平日からの経過日数を出して解決しています。正直、5/5だけ例外処理した方が早い気もしますが、表の作り方がどうであれ使えるようなロジックに組み直しています。
2024: Week 35 – Premier League Results

12ツールで完了。難易度★★。
一度完成後にリファクタリングしたのでツール数が3~4程度減っています。これ、、、やってるうちにトラップらしきものが出てきますね・・・セル内の行数が3パターンあるとか最初思わなくて途中で対応が必要になりました・・・。また、こういう問題ではアレンジツールが輝きます。
2024: Week 36 – Premier League Standings

11ツールで完了。難易度★★。
特筆すべき難易度の高い点はなかったと思いますが、Pointの決定方法がどこにも書かれておらず、結果から類推することになりました。意地悪ですね・・・。Alteryxの累計ツールは複数のフィールドを一気に処理できるのが楽なポイントです。
2024: Week 37 – Premier League recent form

12ツールで完了。難易度★★。
一個目のソートツールまでは前回の流用です。ですので、今回新たに使ったのは5ツールとなります。今回も作り方の詳細が無いLast 5 games・・・。複数行フォーミュラでさくっとクリアできますが・・・。
2024: Week 38 Preppin’ Consultancy Days

12ツールで完了。難易度★★。
おそらくもともとの結果がおかしいです。手動で入力したデータという記載が最初に問題文にありましたが、そもそもStart DateとEnd Dateが逆転しているデータが混入しています(結果でも26行存在)。今回は、StartとEndをスワップさせた上で解いてみました。色々と矛盾するケースがあるので完全に合わせるのは諦めました。
2024: Week 39 – Preppin’ Consultancy Ranks

17ツールで完了。難易度★★★。
StartとEndが逆転しているものの処理を無理やりあわせこみました(結局逆転している場合はそれぞれ単独の日として処理することで事なきを得ました)。このあたりの処理意図的なのかそうじゃないのかよくわからないです。あと、ランキングも結果を見ないとどのタイプのランキングをすればいいのか記載がなかったわけですが、一番難易度が高いやり方になっていますね・・・。
2024: Week 40 – Vrroom

12ツールで完了。難易度★★。
特に難しいところはないと思いますが、問題文をさらっと読むと何していいのかわからないので、手順をしっかり読んで処理をしないといけない問題。細かい手順が省略されているのでそこを読み解くのが肝でしょうか。でもまぁ、基本的にストレートにできた問題です。
2024: Week 41 – Forbes Highest Paid Athletes

15ツールで完了(最後の並べ替えは除きます)。難易度★★★。
Alteryxの場合は直接HTMLファイルを取得しパースできるので、URLだけ使わせて頂きました。2017年だけ6位が被ってる、ということ以外は比較的すんなりいきました。基本タグのパターンをひたすら解析して正規表現でなんとかする、というのがWEB情報のパースの基本です。こういうのはAlteryxの得意な部分ですね!
2024: Week 42 – Strictly Come Dancing

12ツールで完了(最後の並べ替えは除きます)。難易度★★★★★。
これは、、、めちゃくちゃいやらしい問題ですね・・・。楽曲の分割のところでハマりました。パターンが変すぎですね。試行錯誤の上、今の方法になっていますが、かなりここは試行錯誤しています。また、Stage列もかなりいやらしい感じです(2023のFinal、Semi-Finalは問題文の出力が間違っているようにも思います)。
2024: Week 43 – MiniBytes Worst Selling Products

9ツールで完了。難易度★。
今回は非常にベーシックな問題でした。特にコメントが必要ないくらいですね・・・。
2024: Week 44 – MiniBytes Returns Analysis

11ツールで完了。難易度★★。
今回も比較的ベーシックな問題でしたが、返品の基準となる日付が返品日ということは最初は気づきませんでした。確かに会計視点だと返品日が軸になるのは理解できますが、1レコードが一つのセットとして扱うことが多いので、分析視点だとどうしても両方の日付を使う、となりにくいのかな、と思いました・・・。でもこれ下手するとなかなか気づかないトラップですね・・・(問題には何も書いてないので・・・)。
2024: Week 45 – SuperBytes Stock

11ツールで完了。難易度★★★。
今回もベーシック寄りの問題だったと思いますが(変なひっかけもなかったと思います)、販売数の計算などは少しトリッキーだったかな、と思います。在庫見なくても販売数はちゃんと記録してほしいなSuperBytesよ・・・。まぁ、若干余計な空白入っていたり、などはちょっとしたトラップだったのかもしれません。若干頭を使わせるという意味では良問かと思います。
2024: Week 46 – DataFam Europe Special

14ツールで完了。難易度★。
今回は今までで一番ベーシックな問題だったように思います。まぁ、Tableauに食わせるためのデータ作成、みたいな感じなので、必要な処理はかなりあっさり目でした。
2024: Week 48 – Cross Sport League Table Ranks

15ツールで完了。難易度★★★。
久々に歯ごたえある問題。ランキングは2024.2から追加されたランキングツールを使っていますが、そもそもどのタイプでランキングを出すのか、で若干ハマりました・・・(Alteryxの新しいランキングツールだと、Standard Ranking)。あと、Tie Breakerをミスってました・・・。zスコアとか若干ややこしく感じますが、式が書かれているのでそこまで難しいわけではないかと思います。
2024: Week 49 – Jersey Number Analytics


21ツールで完了。難易度★★★。
シートを一括読み込みする場合は、動的入力ツールでもできるのですが、一つだけスキーマが異なるシートがあるためマクロで処理します(人に渡して戻してもらうようなExcelの場合はスキーマがおかしいとかよくあるのでマクロが安定します)。それ以外はよくあるタイプのデータ集計ですが、出力がいちいち「m」とか「$」とかついているのでちょっとめんどくさいですね・・・。身長の階級値の取り方は特に記載がないため中央の値を使うという一般的なやり方になることに注意(Round関数で計算すればオッケーです)。
2024: Week 50 – Life Expectancy

13ツールで完了。難易度★★。
これ、私の英語力だと何したらいいんだっけ、状態で困りました。やることがわかればそれほどむつかしくないのですが、大陸全体の集計を自分で行ったら、順位などは合うのですが細かい数値が合わず、なんでやーってやっていたら、もともとのデータ内に大陸全体の集計値があったので、それを使ったら問題なく合致したという・・・。
2024: Week 51 – Strictly Positive Improvements?

18ツールで完了。難易度★★。
元のデータがスクレイピングのため、細かいところの修正が必要なのが地味に面倒でした(だいたい最後の局面で少し合わなくてようやくわかるので)。それにしても、最初の試合は1つなのに最後の試合だけ何回もしているのでそのあたりルールがちょっと特殊な感じがしました。そもそものルールが良くわかってないので、余計にわかりにくいですね。ドメイン知識!
2024: Week 52 – Naughty or Nice?

6ツールで完了。難易度★★。
これって結果ファイルが入手できなかったんですが、、、どういう処理の仕方を行うと簡単にできるか、というのを考えながらやりましたが、この手の問題は複数のアプローチがあるので、迷走すると複雑なワークフローになりがちです。おそらく初心者と熟練者でツールの数が大きく変わってくる問題かと思います。とりあえずこれで今年のPreppin’ Dataは終了ということで、また来年もよろしくおねがいします。
コメント