このページは解答編です。
↓ネ
↓タ
↓バ
↓レ
↓防
↓止
答えと解説
設問はこちらでした。
P-023: レシート明細データ(receipt.csv)に対し、店舗コード(store_cd)ごとに売上金額(amount)と売上数量(quantity)を合計せよ。
※出力結果は、店舗コード(store_cd)の昇順で並び替えて出力してください(Alteryxオリジナル条件)
解答ワークフローは以下のようになります。
ポイントは二つです。
CSVファイルを読み込んで処理を進める場合は、すべてテキスト型のデータとして読み込まれます。これには注意する必要があります。処理内容に応じて数値型などに変換する必要があります。
今回であれば、集計対象フィールドを「合計」するということなので、いずれも数値型にする必要があります。適切な型を知るためには、オートフィールドツールを使うことで自動的に適切な型に変換されるため、この設定を見るのが一番の近道です。
それでは、オートフィールドツールで調べてみましょう。
ワークフローとしてはまず以下のように入力データに接続していきます。
ここで、オートフィールドツールの出力アンカーをクリックし、結果ウィンドウにて「メタデータ」ボタンを押してメタデータに切り替えると、適切なデータ型が表示されます。
quantityはByte型、amountはInt16型ということがここから読み取れるため、これをそのままセレクトツールに設定しましょう(もちろん、オートフィールドツールをそのまま使いまわしても問題ありません)。
なお、このように設定したフィールドに計算結果を格納する場合は、ここで設定したデータ型より大きな値になる可能性があるので、ご注意ください(その場合は、値の範囲を想定して大きなデータ型にする必要があります)。
ここからは、集計ツールの出番です。今回は、店舗コード(store_cd)ごとに集計を行う必要があるので、store_cdを選択し、追加ボタンをクリックし、ドロップダウンメニューから「グループ化」を選択します。また、quantityとamountはそれぞれ合計しなければならないため、両方選んで追加ボタンをクリックし、ドロップダウンメニューから「合計」を選択します。
なお、出力フィールド名は自由に変更することが可能です。
まとめ
今回は、単純に合計を取得するわけではなく、店舗コードごとに合計するというものでした。「XXXごとに集計する」といった場合は、「グループ化」オプションを使います。頻繁に使いますので、慣れておきましょう。
コメント