Challenge Preppin'Data 2023:Week 37
概要
インプットデータを使って、書籍の購入の一部を分析して、注文が時間の経過とともにどのように変化しているかを確認しようとしています。現在の注文が以前の注文とくらべてどのぐらい数が減ったかを計算したいが、オーダー順がわかる項目がないため、自分でシーケンス番号をふって、現在の注文と以前の注文の差を求めます。
問題のページ(英語)※ここからデータをダウンロード
出題者の回答のページ(英語)※動画あり
自分の解決法
最初に非表示の行番号を表示にしてから、2つのユニオンします。
ファイル名から年と月の情報を取り出して、日付データにし、行番号と日付を使って、データをソートしLookup関数で次の数字を持ってきて、値を求めます。
以下のように入力ステップで1列目のSource Row Numberが最初から非表示なのがわかります。
これはデータ読み込みの際に読み込みデータ順にシーケンスナンバーをふっているものです。
今回はこれを表示にして使います。
ファイル名はユニオンすると1フィールドに入ります。ここに年の情報と月の情報が入っているのでSpirt関数を使って取っだし、日付型のデータを作ります。
ROW_NUMBER関数は、指定したソート順にソート番号を振ります。
LOOKUP関数を使うと他の行のデータを引っ張ってくることができます。
問題の中に、いろいろな機能が含まれていて、面白い問題でした。