- ベストアンサー
Excel・ある数値をある数値にしたい(四捨五入とはちょっとちがう汗)
お世話になります。m(。_。;))m ペコペコ… Excel2000です。 ある数値をある数値にしたいのです。四捨五入とはちょっとちがいます。 下↓に示します。 入力する数字 → 表現したい数字 ──────────────────────────── 1.18 1.20 1.19 1.20 1.20 1.20 1.21 1.20 1.22 1.20 ──────────────────────────── 1.23 1.25 1.24 1.25 1.25 1.25 1.26 1.25 1.27 1.25 ──────────────────────────── 1.28 1.30 1.29 1.30 1.30 1.30 1.31 1.30 1.32 1.30 ──────────────────────────── 1.33 1.35 ・・・とまあこんな感じです。どうやって実現すればいいでしょうか? ユーザー定義・・?VBA・・・? どうかよろしくおねがいいたしますm(。_。;))m ペコペコ…
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと複雑な式になりますが。 A1 に値が入っているとすると、 B1 の式は、 = int((a1*100+2)/5)*5/100 でいけます。
その他の回答 (8)
- Wendy02
- ベストアンサー率57% (3570/6232)
これで出来ませんか? =FLOOR(A1+0.02,0.05)
- imogasi
- ベストアンサー率27% (4737/17069)
下記の2つの方法が検討方法です。 (1)範囲が少ないならVLOOKUP(TRUE型)でできます。 上記よりずっと、自由な区切りも表にするのだから自由です。 ただし表を作るとき、小数点以下の数はダメのようなので100倍した表をつくり、索引する数も100倍して参照する必要があると思います。結果のVLOOKUPの表の第2列目は小数点つきでのOKではないかと思います。 (2)範囲が広いとなると、VLOOKUPの索引表をつくってられません。 この場合に幸い当てはまる、ルールを見抜き、式に作るより他ありません。例外があると難しく、危ない橋を渡っている気がします。 すでにその線の回答は出ています。
お礼
すみません、ちょっと私には高度な説明です ごめんなさい・・・m(。_。;))m ペコペコ…
- 134
- ベストアンサー率27% (162/600)
データがA2から入っているとして こんな感じでいかがでしょうか。 =FLOOR((A2+0.02)*100,5)/100 として、下へコピー
お礼
ありがとうございます!!シンプルでわかりやすかったです!! しっかし。。なんでこんな式がみちびけるんですかね。。 すごいです(汗
- Katsu1030
- ベストアンサー率59% (19/32)
ごめんなさい、勘違いしてしまいました。 表示だけを変えると言うことなのですね。 セル参照で判定結果を別に表示させるので有れば問題なく出来ると思ったのですが…。 大変失礼しました。
お礼
ありがとうございます とりあえず今の時点では 別に表示 させる方法でもかまいません わかりにくくてすみませんm(。_。;))m ペコペコ…
- seiiiichi
- ベストアンサー率41% (79/190)
入力する数値がA1から縦に並んでいるとします。 B1に、次のように入れてください。 =IF((A1+0.02)-ROUND(A1+0.02,1)<0,ROUND(A1+0.02,1)-0.05,ROUND(A1+0.02,1)) で、あとは、B1のセルを選んだ状態で、 右下の■をドラッグして、ビーと下まで持って行けば できます。 もっと、スマートな方法もあるかもしれません。
お礼
あわわわ。。むちゃくちゃアタマよさそうな関数でおそれいります。。 ちょっと計算してみるんですが どこをどうまちがっているのか なかなか計算あいません。。 でも、実際関数を実演してみると あら 不思議、ちゃんとできているのが すばらいしいです。。。 ありがとうございました
- Katsu1030
- ベストアンサー率59% (19/32)
こんばんは ご質問ですが、単純に 「2倍値を四捨五入して半分で割る」で実現可能ではありませんか? A 元の値 B 2倍値 C Bを四捨五入 D Cを半分に A B C D ---------------------- 1.18 2.36 2.4 1.2 1.19 2.38 2.4 1.2 1.2 2.4 2.4 1.2 1.21 2.42 2.4 1.2 1.22 2.44 2.4 1.2 1.23 2.46 2.5 1.25 1.24 2.48 2.5 1.25 1.25 2.5 2.5 1.25 1.26 2.52 2.5 1.25 1.27 2.54 2.5 1.25 1.28 2.56 2.6 1.3 1.29 2.58 2.6 1.3 1.3 2.6 2.6 1.3 1.31 2.62 2.6 1.3 ----------------------
お礼
ほんとですね!ありがとうございます!できますね もっとそれをスマートに関数にでもできないかとおもいましたが 直接それを関数に変換・・・ちょっとアタマわるいのでむずかしいですねえ・・
- hiro823
- ベストアンサー率25% (74/285)
こんばんは。 切り上げと切り捨てのマクロを使えばできます。 例えば... (1)1.18を1.20にする場合 =ROUNDUP(1.18,1) とすると、1.20になります。 (2)1.21を1.20にする場合 =ROUNDDOWN(1.21,1) とすると、1.20になります。 ちなみに、1.20を上記の式ようにROUNDUP/ROUNDDOWNをした場合、どちらも1.20になります。 お試し下さい。 それでは。
お礼
んー・・すみません、この場合、 1.27を1.25にしたかったりするので もしかしてそれだと 実現できないんじゃ・・・?わかってなかったら、すみませんm(。_。;))m ペコペコ…
- 6dou_rinne
- ベストアンサー率25% (1361/5264)
VLOOKUPでできませんか。 またVBAを使えばできますが。
お礼
うわ むずかしいです。。。(混乱
お礼
ありがとうございます!!シンプルでわかりやすかったです!! しっかし。。なんでこんな式がみちびけるんですかね。。 すごいです(汗