• ベストアンサー

Excelの関数式でこんなの出来ますか?

私のパソコンはWindowsXPでExcel2003を使用しています。 ちょっと面倒な式なのですが、A1のセルに数字が入力されています。 この数字を元にしてB1のセルに5%足した数字が自動で入るように したいのです。但し、A1のセルが千円単位の場合は5%で万円単位の 場合は2%加算した数字にしたいのです。 その数字の十円単位は切り上げて百円単位まで表示するようにしたい と思っているのですが可能でしょうか? ちょっと説明が下手で申し訳ありませんがExcelに詳しい方アドバイス よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 質問内容の解釈が間違っていたら、ごめんなさい。 たとえば、A1セルに「36425」と入っていたら、 30000×1.02倍+6000×1.05倍+425の数値の十の位を切り上げて、37400とすればいいのでしょうか? もしそうであれば、一例です。 式としてはかなり長くなりますが、 表示させたいセル=ROUNDUP(INT(A1/10000)*10000*1.02+RIGHT(INT(A1/1000),1)*1000*1.05+MOD(A1,1000),-2) としてみてはどうでしょう? もし的外れの回答なら読み流してください。m(__)m

mariko_f
質問者

お礼

早速ご解答いただきありがとうございます。 思い通りの結果になりました。 助かりました!

その他の回答 (3)

noname#204879
noname#204879
回答No.3

セル A1 の数値が必ず千円以上であるならば B1: =ROUNDUP(A1*(1.05-0.03*(A1>=10000)),-2) ただし、セル A1 の数値は必ず千円以上である(千円未満はない)ものと仮定しています。

mariko_f
質問者

お礼

早速ご解答いただきありがとうございます。 皆さん適切なアドバイスに感謝しています。 助かりました!

回答No.2

> 千円単位の場合は5%で万円単位の > 場合は2% 百円単位や十円単位の条件が書いてないってことは、9800円なんて 数字が入らないことは運用で保証されているとします。一万未満の 端数が入っていると mod(A1,10000) がゼロにならないので、 =if(mod(A1,10000),1.05,1.02) を掛けて希望の桁で切り上げればいいわけですね。 =roundup(A1*if(mod(A1,10000),1.05,1.02),-2) これで質問どおり、10000円 (万円単位)の場合は10200円、11000 (千円単位)の場合は11600円が返ってきます。本当にこの結果が欲し いのか謎ですが。 もしも質問の文章が間違っていて、一万円以上の場合は2%で一万円 未満の場合は5%だったというのでしたら、mod(A1,10000)のかわりに (A1<10000)を使うといいですよ。

mariko_f
質問者

お礼

早速のご解答ありがとうございました! ちょっと変わった結果だとは思いますがアドバイスいただいた 結果で大丈夫です。 助かりました!

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

A1のセルに入る「千円単位」「万円単位」の意味が良く判りません。 1万円未満、1万円以上の意味でしょうか? 説明に自信が無い場合、具体例を挙げて頂ければ理解がしやすいのですが……。 1万円未満、1万円以上の意味でしたら、↓で出来るかと =ROUNDUP(A1*(1+0.02+(A1<10000)*0.03),-2)

mariko_f
質問者

お礼

説明の仕方が良くなくてご迷惑をお掛けした。 ご解答いただきました通りの式で問題ありません。 ありがとうございました!

関連するQ&A