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

100本ノック

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

↓ネ

↓タ

↓バ

↓レ

↓防

↓止

答えと解説

設問はこちらでした。

P-067: 商品データ(product.csv)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を切り上げること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)には欠損が生じていることに注意せよ。

※新しい価格はnew_price、新しい単価での利益率はnew_profit_rateというフィールド名とすること

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

65問目で行っている計算の中で1円未満を切り捨てていましたが、今回は1円未満を切り上げるというのが異なるポイントです。

実際のワークフロー

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

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

次にフォーミュラツールで計算していきます。新しい価格(new_price)は、原価(unit_cost)÷(1-利益率)から求められます。つまり、以下のような計算式となります。1円未満は切り上げとなるので、CEIL関数で切り上げします。

CEIL([unit_cost]/(1-0.3))

データ型はInt16で問題ありません。

次に、確かめ算が必要なので、新しい価格で利益率を計算してみましょう。

同じフォーミュラツールに計算式を追加しましょう。

([new_price]-[unit_cost])/[new_price]

新しい利益率は、フィールド名をnew_profit_rateとし、データ型はDouble型とします。念のため、結果を見てみると以下のように30%くらいの利益率になっています。

これで完了です。

まとめ

今回も、算数の問題でした。65、66問目との違いは新単価の端数処理だけです。今回はCEIL関数を用いた切り上げでした。

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

コメント

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