データサイエンス100本ノックをAlteryxで。23日目(解答)

100本ノック

このページは解答編です。

↓ネ

↓タ

↓バ

↓レ

↓防

↓止

答えと解説

設問はこちらでした。

P-023: レシート明細データ(receipt.csv)に対し、店舗コード(store_cd)ごとに売上金額(amount)と売上数量(quantity)を合計せよ。

※出力結果は、店舗コード(store_cd)の昇順で並び替えて出力してください(Alteryxオリジナル条件)

解答ワークフローは以下のようになります。

ポイントは二つです。

CSVファイルを読み込んで処理を進める場合は、すべてテキスト型のデータとして読み込まれます。これには注意する必要があります。処理内容に応じて数値型などに変換する必要があります。

今回であれば、集計対象フィールドを「合計」するということなので、いずれも数値型にする必要があります。適切な型を知るためには、オートフィールドツールを使うことで自動的に適切な型に変換されるため、この設定を見るのが一番の近道です。

それでは、オートフィールドツールで調べてみましょう。

ワークフローとしてはまず以下のように入力データに接続していきます。

ここで、オートフィールドツールの出力アンカーをクリックし、結果ウィンドウにて「メタデータ」ボタンを押してメタデータに切り替えると、適切なデータ型が表示されます。

quantityはByte型、amountはInt16型ということがここから読み取れるため、これをそのままセレクトツールに設定しましょう(もちろん、オートフィールドツールをそのまま使いまわしても問題ありません)。

なお、このように設定したフィールドに計算結果を格納する場合は、ここで設定したデータ型より大きな値になる可能性があるので、ご注意ください(その場合は、値の範囲を想定して大きなデータ型にする必要があります)。

ここからは、集計ツールの出番です。今回は、店舗コード(store_cd)ごとに集計を行う必要があるので、store_cdを選択し、追加ボタンをクリックし、ドロップダウンメニューから「グループ化」を選択します。また、quantityとamountはそれぞれ合計しなければならないため、両方選んで追加ボタンをクリックし、ドロップダウンメニューから「合計」を選択します。

なお、出力フィールド名は自由に変更することが可能です。

まとめ

今回は、単純に合計を取得するわけではなく、店舗コードごとに合計するというものでした。「XXXごとに集計する」といった場合は、「グループ化」オプションを使います。頻繁に使いますので、慣れておきましょう。

解答ワークフローダウンロード

コメント

タイトルとURLをコピーしました