• ベストアンサー

エクセル 細かい条件での切り上げ切り捨て

計算した結果(=A1*0.9)の1の位が 0~2=切り捨て 3~7=5 8~9=切り上げ という風に表示したいのですが、どうすればいいでしょう。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

No.2です。 =IF(MOD(INT(A1*0.9),5)<3,INT(A1*0.18)*5,INT(A1*0.18)*5+5) もう少しシンプルになったら再投稿します。

ks-st
質問者

お礼

お返事おそくなりました。 2度の回答ありがとうございます。 私もIF文で、、、と考えたのですが、この式にはまったくたどり着きませんでした。 これだと計算結果を表示させるセルが不要でいいですね。 ありがとうございました。

その他の回答 (6)

  • jindon
  • ベストアンサー率43% (50/116)
回答No.7

ツール→アドイン→分析ツールにチェックで OK =MROUND(A1*9,"5")

ks-st
質問者

お礼

ありがとうございます。 現在アドインがインストールされておらず、 残念ながらすぐに結果を確認できないのですが、 インストール出来次第、この関数使ってみます。 まずはお礼まで。ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

ユーザー関数を作ってみました。 ツール-マクロ-VBEで出てくる画面の、メニューで 挿入-標準モジュールをクリックして出てくる画面において、下記をコピーし貼りつける。 Function marume(a) n = Int(Int(a) Mod 10) Select Case n Case Is <= 2 m = 0 Case 3 To 7 m = 5 Case Is >= 8 m = 10 End Select marume = 10 * Int(a / 10) + m End Function ワークシートに戻って、A列にデータがあるとして B1に=marume(A1)と入れて下方向に複写する。 (例データ) (A)  (B列) 23.9 25 134.5 135 0.5 0 1238.4 1240 129.44 130 121.35 120 1222.97 1220 2333.67 2335

ks-st
質問者

お礼

やってみました。できました! 構文を読んでも私には意味ができませんが(昔勉強したのに。。。)、わざわざ作ってくださり、ありがとうございました。

回答No.5

#4です。 説明が足りませんでした。 セルB7に=A1*0.9が入っています(汗!!)

回答No.4

=FLOOR(B7+2,5) では、どうですか。

ks-st
質問者

お礼

すごい!できました。 関数って、やっぱり数学的頭脳がないと使いこなせないなーと思いました。(どうして+2なんだろうと考え込みました)ありがとうございました。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

=IF(MOD(INT(A1*0.9),5)<3,INT(A1*0.9)-MOD(INT(A1*0.9),5),INT(A1*0.9)-MOD(INT(A1*0.9),5)+5) もう少しシンプルになるか考えて、見つかれば再投稿しますね。

  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.1

=A1*0.9 の代わりに =IF(INT(MOD(A1*0.9,10))<=2,ROUNDDOWN(A1*0.9,-1),IF(INT(MOD(A1*0.9,10))<=7,ROUNDDOWN(A1*0.9,-1)+5,ROUNDUP(A1*0.9,-1))) とされてはいかがでしょうか。 A1*0.9を10で割った余りの整数部分(つまり1の位)について場合分けをしています。

ks-st
質問者

お礼

早速の回答ありがとうございます。 お礼が遅くなり申し訳ございません。 こういう関数が思いつくなんて、すごいですね。 とても参考になりました。 ありがとうございました。

関連するQ&A