• ベストアンサー

エクセルで変則的な切り上げができますか?

たとえば、計算結果を1万円から4000円単位で切り上げることが可能でしょうか? 8000→10000 10000→14000 12000→14000 15000→18000 という感じです。IFとANDを使うと非常に式が長くなるので、もっとすっきりした関数がないものかと調べてみましたが、わからないのです。 もしかするととても初歩的な質問かも知れませんが、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.6

#01です 式を  =CEILING(A1+2001,4000)-2000 に変更すれば6000以上の数値は#02さんへの補足通りになりますが、3000~5999のときは6000という結果になります ですからもう一工夫必要になります  =IF(A1<3000,0,IF(A1<6000,10000,CEILING(A1+2001,4000)-2000)) ならば3000以上9999までは10000になり、それ以上は4000刻みで切り上げられます。3000未満の時は0にしています

k-papa
質問者

お礼

何度もありがとうございます。zap35さまとmshr1962さまのおかげで解決できました。本当に感謝しております。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.7

#2です。 3000円~9999円=10000円 10000円~1399円=14000円 14000円~1799円=18000円・・・ 3000円未満をどうするかが抜けてますが... =IF(A1<3000,"",CEILING(MAX(A1-9999,0),4000)+10000) でどうでしょうか? 上記の場合、3000円未満は金額を表示しません。

k-papa
質問者

お礼

何度もありがとうございます。zap35さまとmshr1962さまのおかげで解決できました。本当に感謝しております。

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.5

なぜ「8000→10000」が「1万円から4000円単位で切り上げること」になるのか理解できません。 「4000円単位で切り上げる」のは「1万円から」なのでは? 何れにしても、お示しの例のようにするためなら、 =CEILING(A1,4000)+2000 でも =MROUND(A1,4000)+2000 でもOKですが、A1 が 13000、14000、17000、18000 の場合はどうなって欲しいですか?

k-papa
質問者

お礼

ご回答ありがとうございます。説明が不十分で申し訳ございませんが、何とか他の方のご回答で解決いたしました。

すると、全ての回答が全文表示されます。
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.4

こんにちは。 仮にA1に数値(正の整数)があり、B1に下記の式 =IF(A1=0,0,IF(A1<10000,10000,IF(A1=10000,14000,10000+ROUNDUP((A1-10000)/4000,0)*4000))) で出来ると思います。式を整理して考えてないのでもっと簡単に出るかもしれませんが・・・

k-papa
質問者

お礼

ご回答ありがとうございます。実はIF関数を仕様していたのですが、あまりに式が長くなり、後々加工するようなときに間違ってしまいそうなので、別の方法を探しいていました。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

VLOOKUP関数のTRUE型を使えないかやってみては。 F1:G6に 0 10000 10000 14000 14000 18000 18000 22000 22000 26000 26000 例データA1:B5(B列は関数の結果) 8000 10000 10000 14000 12000 14000 15000 18000 19000 22000 式 B1は =VLOOKUP(A1,$F$1:$G$6,2,TRUE) 式を下方向に複写する。 問題はF,G列の表(というか区分けが)が青天井かどうかです。 元価格か計算結果価格のどちらかに、上限があるときなどなら使えると思います。 その点質問ではなにも書いてないので、上例のF,G列は中途で止まっていますので、注意してください。

k-papa
質問者

お礼

ご回答ありがとうございます。今回はできるだけシンプルな表にしたかったので、CEILING関数を利用したいと思います。でも、参考になりましたので、別の機会にVLOOKUPもつ買えそうです。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

1万円を基準に4000円ということでしょうか? 1~ 2000→ 2000 2001~ 6000→ 6000 6001~10000→10000 10001~14000→14000 14001~18000→18000 マイナスの値がない場合は =IF(A1<0,"",CEILING(A1+2000,4000)-2000) マイナスの値もある場合は =SIGN(A1)*(CEILING(ABS(A1)+2000,4000)-2000)

k-papa
質問者

お礼

ご回答ありがとうございます。 できるかどうかわかりませんが、とりあえず願望を書きますと、 答えは10000円から4000円単位で、 その基となる値はおおよそ3000円程度からで、 3000円~9999円=10000円 10000円~1399円=14000円 14000円~1799円=18000円・・・ という感じですが、都合が良すぎるでしょうか?

すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

CEILING関数で4000刻みの切り上げが可能ですが、質問の例では少し違いますね =CEILING(A1-2000,4000)+2000 ではどうでしょうか。 80001~10000 は 10000 10001~14000 は 14000 14001~18000 は 18000 になります。

k-papa
質問者

お礼

早々にご回答頂きありがとうございます。知識に偏りがあり、CEILING関数というものをはじめて知りました。

すると、全ての回答が全文表示されます。

関連するQ&A