このページは解答編です。
↓ネ
↓タ
↓バ
↓レ
↓防
↓止
答えと解説
設問はこちらでした。
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関数を用いた切り上げでした。
コメント