- ベストアンサー
ある数値を超える場合とそうでない場合に、計算式を変えたいです。
こんにちは。 エクセル関数のことはよく分かりません。 ぜひ皆さんの知恵をお借りしたいです。 (シート1) A 1 300 2 500 3 250 4 800 5 100 6 800 7 400 と値段が並んでいるシートで 掛け率 1.2 をかけていくのですが、 数値が500を越えているものの掛け率は 1.1 にしたいのです。 おそらくIF関数を使うんだろうなと思っていますが。。 割と大量のデータです。 よろしくお願いしますm(__)m
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
三度お邪魔します。 先程の計算の例で、どのような結果になるかを紹介します。 先程の回答で、記述に誤りがあるかどうかかくにんしてませんが、 わたしは、下記の式で確かめたので、こちらのほうが確実です。 私が使ってるソフトは、カンマ(,)ではなくセミコロン(;)を使うようになっています。 エクセルでも、たしか、カンマでなくセミコロンでも大丈夫だったと思うのですが、うまくいかなかったら、セミコロンをカンマに直して使ってください。 IF(A1<=500;A1*1.2;IF(A1<=500*1.2/1.1;500*1.2;IF(A1<=700;A1*1.1;IF(A1<=700*1.1/1.05;700*1.1;A1*1.05)))) 以下、計算結果 480 576 485 582 490 588 495 594 500 600 505 600 510 600 515 600 520 600 525 600 530 600 535 600 540 600 545 600 550 605 555 610.5 560 616 565 621.5 570 627 575 632.5 580 638 585 643.5 590 649 595 654.5 600 660 605 665.5 610 671 615 676.5 620 682 625 687.5 630 693 635 698.5 640 704 645 709.5 650 715 655 720.5 660 726 665 731.5 670 737 675 742.5 680 748 685 753.5 690 759 695 764.5 700 770 705 770 710 770 715 770 720 770 725 770 730 770 735 771.75 740 777 745 782.25 750 787.5 755 792.75 760 798 765 803.25 770 808.5 ね? 逆転現象が無くて、いい感じでしょ?(笑) ご参考になりましたら。
その他の回答 (5)
- sanori
- ベストアンサー率48% (5664/11798)
>>> ところで追加で質問なのですが、 500を越えているものは、掛け率1.1 700を越えているものには、掛け率1.05 とする場合にはどうしたらいいのですか? 連続質問すいません! --- 関数のヘルプ見ても、分かんないですよね。(笑) すでに回答が出ているように =IF(A1>500,IF(A1>700, A1*1.05,A1*1.1),A1*1.2) となります。 実は、前回書こうと思ったのですが、 (ご質問では、この説明は要求されていないですけれども) ご質問の文のとおりの手法でやってしまうと、まずいことが起こります。 つまり、 498のとき→498×1.2=600の0.4%引き 499のとき→499×1.2=600の0.2%引き 500のとき→500×1.2=600 501のとき→500×1.1=550の0.2%増し 502のとき→500×1.1=550の0.4%増し 1.1分の600(だいたい550)のとき→やっと、やっと、550×1.1=600(に追いつく) となってしまい、境目のところで、掛け算の答えに逆転現象が起こってしまいます! 実用上では、このような不合理が許されない局面が多々あります。 私であれば、こうします。 =if(A1<=500,A1*1.2,if(A1<=500*1.2/1.1,500*1.2,if(A1<=700,A1*1.1,if(A1<=700*1.1/1.05,700*1.1,A1*1.05)))) つまり、 逆転現象が起きないように、 A1がだいたい550までは、一律、答えを600にする、ということです。
- onlyrom
- ベストアンサー率59% (228/384)
同じことですがこうした方が分り易い?? =IF(A1>700, A1*1.05, IF(A1>500, A1*1.1, A1*1.2))
お礼
確かに私には、こっちの方が分かりやすいです。 ありがとうございます!
- teiou68k
- ベストアンサー率28% (202/721)
No1の方ではないですが。 >追加質問の件 IFをネストすればよいのでは? =IF(A1>500,IF(A1>700, A1*1.05,A1*1.1),A1*1.2) とりあえずIFワークシート関数をHelpでひいてみるべし。
お礼
なるほどー。 入れ子にするんですね。 ありがとうございました!
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
=A1*IF(A1>500,1.1,1.2) 以下コピー
お礼
BLUEPIXYさん、ありがとうございます。 下の方のところでした追加の質問にも答えてくださったら嬉しいです!
- sanori
- ベストアンサー率48% (5664/11798)
セルB1に =if(A1>500,A1*1.1,A1*1.2) と入力。 そして、 B1をB2以下へ、ずらーっとコピペです。
補足
sanoriさんありがとうございます! できました! ところで追加で質問なのですが、 500を越えているものは、掛け率1.1 700を越えているものには、掛け率1.05 とする場合にはどうしたらいいのですか? 連続質問すいません!
お礼
何度も丁寧に答えてくださってありがとうございました。 助かりました(・∀・)/!