• ベストアンサー

質問失礼します。

質問失礼します。 エクセル関数でROUNDUPを使い、数値を切りあげたいのですが、 =ROUNDUP(A1,-1) だと1の位が切り上げあれますが、たとえば、 1500という値を2000にするには =ROUNDUP(A1,-3)で出来ます。 これで、A1のセルに桁数関係なく切り上げるにはどのように関数を組んであげればいいのでしょうか? 30だったら100 150だったら200 1500だったら2000 のように入力数値に合わせて切り上げしたのです。 宜しくお願いします。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.8

=ROUNDUP(A1,IF(LEN(A1)>=3,(LEN(A1)-1)*-1,A1)) ではどうでしょうか。

visual8969
質問者

お礼

回答ありがとうございます。 無事解決することができました。 ありがとうございます。

その他の回答 (7)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.7

こんなことかな =ROUNDUP(A1*0.15,1-LEN(INT(A1*0.15)))

visual8969
質問者

お礼

回答ありがとうございます。 無事解決することができました。 ありがとうございます。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.6

ANo.3です。何度もすいません マイナスが抜けていました。 =ROUNDUP(A1,IF(LEN(A1)>2,(LEN(A1)-1)*-1,LEN(A1)*-1))

visual8969
質問者

補足

回答ありがとうございます。 大変申し訳ないですが、mar00さんの方法だと10のとき100と表示されてしまいます。

回答No.5

15%だと少数が出る可能性もあるので文字数を数えないで LOGを使ったほうがよいのでは? =ROUNDUP(B2,-LOG(B2)) とか 直接なら =ROUNDUP(A2*15%,-LOG(A2*15%))

visual8969
質問者

お礼

回答ありがとうございます。 無事解決することができました。 ありがとうございます。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

ANo.3です。 =ROUNDUP(A4,IF(LEN(A4)>2,(LEN(A4)-1)*-1,LEN(A4)*1)) です。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

=ROUNDUP(A1,LEN(A1)*-1) でどうでしょうか。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.2

まず、どの場合に どの桁に繰り上げるのか不明です 条件をきちんと記載ください。 例題の場合であれば、参考までに =ROUNDUP(A1,-3+(A1<1000)) やりたいことはこんなことかな =ROUNDUP(A1,-3+(A1<1000)+(A1<100)) ただし、 >30だったら100 に反しますね とにかく、条件が曖昧すぎますね

visual8969
質問者

補足

回答ありがとうございます。 条件があいまいで申し訳ありません。 細かく記述しますと、 ある原価値(A1)の15%の掛率の値を繰り上げたいのです。 A2に掛率値を表示するようにします。 例えば15000円の原価値の15%は2250円がA2に表示されます。 2250円を3000円に切り上げたい これひとつだけならROUNDUP(A1*0.15,-3) で2250円は3000円の表示になります。 が、ここで100円といれてしまうと A2が100と表示されてしまいます。 そこで原価値(A1)に100と入れた場合、 掛率(A2)に100円の15%なんで、20 掛率が1000円以上なら 1400→2000 1890→2000 掛率が100円以上なら 150→200 130→200 掛率が10円以上なら 13→20 18→20 59→60 というようにやりたいと考えています。

  • root_16
  • ベストアンサー率32% (674/2096)
回答No.1

=IF(QUOTIENT(A1,1000)>0,ROUNDUP(A1,-3),ROUNDUP(A1,-2)) でできると思います。 1000以上の桁数で特殊な計算があれば 分岐で分ければいいと思います。 QUOTIENT関数(割り算の商を出す関数)はツール→アドインで ソルバーアドインか 分析ツール が必要だったと思います(Excel 2000)。

visual8969
質問者

お礼

早速の回答案ありがとうございます。 できました。 でも、1の位を切り上げるように上記の関数にROUNDUP(A1,-1)を加えると引数が多いと表示されますが、これ以上関数をつなげることはできないのでしょうか?

visual8969
質問者

補足

上記の質問は例として記述していますが、正確にはある値の15%の数値を切り上げる作業を行う予定です。 たとえばA1に15000という値を入れてA2 にA1の値に対する15%の数値を入れます。この場合15000の15%は2250ですから、この数値を3000にしたいとすると この場合、単純にROUNDUP(A1*0.15)をA2のセルに挿入すればできます。 ですが、この場合だとA1に100と入れてしまうと、A2は100になります。 そこでroot_16さんの教えてくださいました式を入れます値が小さくなるとできないので、そこで =IF(QUOTIENT(A1,1000)>0,ROUNDUP(A1,-3),ROUNDUP(A1,-2),ROUNDUP(A1,-1)) とすると多すぎる引数が入力されています と表示されます。 どのように解決すればよろしいでしょうか?