- ベストアンサー
関数を教えてください
以前の質問を見ていたのですが、よくわからなかったので、質問させてください。 セルA1に入った数値が 200円以下なら ×0 200円以上800円未満なら ×0.05 800円以上1,000円未満なら ×0.06 それ以上なら ×0.07 その計算結果をセルB1に表示する この場合、どのような関数を使えばいいでしょうか? 初歩的な質問かも知れませんが、宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
一番単純な分岐です。 =if(A1<200,A1*0,if(A1<800,A1*0.05,if(A1<1000,A1*0.06,A1*0.07))) 200円未満としました。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
この問題はVLOOKUPの典型的な利用例です。VLOOKUPを使いましょう。しかしIFの多重ネストなどが出てますね。 たとえばE1:F4 0 201 0.05 801 0.06 1000 0.07 A列に数字が入るとして B1に =VLOOKUP(A1,$E$1:$F$4,2,TRUE) これを下方向にオートフィルします。 テスト例 0 0 50 0 100 0 200 0 201 0.05 500 0.05 800 0.05 801 0.06 900 0.06 999 0.06 1000 0.07 1001 0.07 2000 0.07 3000 0.07 5000 0.07 表を配列にするのは、ハイテクでしょうが、エントリ数が多くなると 式に書くのが面倒になります。 何円なので、正整数という仮定です。 未満・以上に気を使ったつもりですが、表を作るとき1をづらすべきかどうか、いつもチェックしてます。注意したほうがよいです
お礼
お礼が遅れ、申し訳ありません。 詳細な説明、ありがとうございました。 大変参考になりました。 関数と一言で言っても、いろいろなやり方があるのですね。 勉強させていただきました。 ありがとうございました。
- lettuce_take
- ベストアンサー率0% (0/1)
こんばんは。 VLOOKUP関数を使ったやり方もあります。
お礼
お礼が遅れ、申し訳ありません。 lettuce_takeさんや他の方々からのアドバイスを参考にさせていただき、さらに勉強していきたいと思います。 ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
=A1*LOOKUP(ABS(A1),{0,200,800,1000},{0,0.05,0.06,0.07}) 絶対値で見ていますので負の値でも同様の係数で計算します。
お礼
お礼が遅れ申し訳ありません。 LOOKUP関数を使ったやり方ですね。 自分の勉強不足を思い知りますが、大変参考になりました。 ありがとうございました。
- 555imp
- ベストアンサー率38% (33/85)
=if(and(a1>=0,a1<200),a1*0,if(and(a1>=200,a1<800),a1*0.05,if(and(a1>=800,a1<1000),a1*0.06,if(a1>=1000,a1*0.07,"Check!")))) 一番最初の条件を勝手に0円以上200円未満としました.
お礼
お礼が遅れ申し訳ありません。 まだまだ初心者の私にはお恥ずかしいのですが、ちょっと難しいです。 555impさんの回答を勉強させていただきます。 ありがとうございました。
- aruaru_
- ベストアンサー率27% (103/375)
セルB1に =IF(A1<200,0,IF(A1<800,A1*0.05,IF(A1<1000,A1*0.06,A1*0.07))) 200円の場合0倍も0.05倍も含まれるので 0を200円未満で作りました
お礼
お礼が遅れ申し訳ありません。 大変参考になりました。 No.1さんの回答と微妙に違うのですね。 これからも関数、勉強していきたいと思います。 ありがとうございました。
お礼
お礼が遅れて申し訳ありません。 大変、参考になりました。 ありがとうございました。