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

100本ノック

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

↓ネ

↓タ

↓バ

↓レ

↓防

↓止

答えと解説

設問はこちらでした。

P-064: 商品データ(product.csv)の単価(unit_price)と原価(unit_cost)から、各商品の利益率の全体平均を算出せよ。ただし、単価と原価には欠損が生じていることに注意せよ。

※作成するフィールドの名称はprofit_rateとすること

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

63問目で算出した利益の平均を取るという問題ですが、データにNullが含まれています。しかしながら、AlteryxはNullは弾いて計算するため、そのまま平均を取れば問題ありません。

実際のワークフロー

それでは、実際のワークフローを作っていきましょう。

まず、単価(unit_price)と原価(unit_cost)について計算を行って行くので、セレクトツールで型変換を行っていきましょう。オートフィールドツールで調べるとInt16型がベストマッチのようですので、Int16型にしていきます。

ここで、63問目でせっかくunit_profitを計算したので、活用するパターンとしないパターンをやってみたいと思います。

63問目を活用するパターン

フォーミュラツールで計算していくわけですが、63問目で以下のフォーミュラツールのように、単価-原価をunit_profitという形で計算しています。この後に、unit_profitを単価で割ることで利益率を出すことができます。

unit_profitを計算する式:

[unit_price]-[unit_cost]

データ型は数値型(Int16)としています。

unit_profot_rateを計算する式:

[unit_profit]/[unit_price]

データ型は小数点が出てくるのでDouble型としています。

ここで一旦止めて、63問目を活用しないパターンを見てみましょう。

63問目を活用しないパターン

わざわざunit_profitを計算しなくても、直接unit_profit_rateを計算することが可能です。フォーミュラツールで、利益率を、単価(unit_price)引く原価(unit_cost)割る単価(unit_price)から求められます。

([unit_price]-[unit_cost])/[unit_price]

割合のため小数点が出てくるため、データ型はDouble型としておきます。

これでいずれのパターンでもunit_profit_rateが出ましたので、いよいよ平均を求めていきます。集計ツールでunit_profit_rateの平均を取るだけです。Nullが入っていますが、自動的に除去されます。

出力フィールド名は、profit_rateとしています。

まとめ

今回は、Nullデータの入っているデータの平均を取る問題でした。Alteryxの場合はNullは自動的に弾くのでそのまま計算すれば問題ありません。

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

コメント

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