- ベストアンサー
exelの計算式について
エクセルの計算式を教えてください。 任意のセル(A1)の値の1位を切り捨て、 さらに10位が50未満の場合も切り捨てるのは どのような式になるのでしょうか。 よろしくお願いします。 例) 1981→1980 1949→1900
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! こういうことでしょうか? A1セルからデータがありB1セル以降に表示させるとします。 B1セルに =IF(INT(MOD(A1,100)/10)<5,ROUNDDOWN(A1,-2),ROUNDDOWN(A1,-1)) としてオートフィルで下へコピーではどうでしょうか? (エラー処理はしていません) 外していたらごめんなさいね。m(__)m
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
=IF(A1="","",ROUNDDOWN(A1,IF(MOD(A1,100)<50,-2,-1))) などのように。
お礼
ありがとうございます。このような方法もあるのですね。勉強させていただきました。
- asciiz
- ベストアンサー率70% (6826/9706)
まず、四捨五入には ROUND 関数を使います。 http://excel.onushi.com/function/round.htm 切り捨てには、FLOOR 関数を使います。 http://excel.onushi.com/function/floor.htm 似ている関数ですが、2つめの数の指定方法が違います…。 =ROUND(A1, 0) …小数点0ケタにします、つまり整数の近い方に四捨五入します。 =ROUND(A1, 2) …小数点2ケタにします、つまり小数点3桁目を四捨五入します。 ここで、2番目のパラメータにマイナスを使うと、順に1の位を四捨五入・10の位を四捨五入、と言うように使うことが出来ます。 =ROUND(A1, -1) …1の位を四捨五入します。 =ROUND(A1, -2) …10の位を四捨五入します。 これに、余りを求める関数 MOD と、条件判断のif関数を組み合わせると、希望の式を作れます。 =IF( MOD(A1,100)<50, FLOOR(A1, 100), ROUND(A1, -1) ) でも、ところで、1949→1900 にしたいのはわかりましたが、2011→2000 というようにもしたいんでしょうか? 「10位が50未満」という条件ではそうなってしまいますよ。 1950未満は、2桁切り捨て、1950以降は1桁目四捨五入、だと、このようになります。 =IF( A<1950, FLOOR(A1, 100), ROUND(A1, -1) )
お礼
ありがとうございます。ほとんどの場合はうまくいくのですが、9499が9500になってしまいました。
- imogasi
- ベストアンサー率27% (4737/17069)
A列 B列 1981 1980 1949 1900 1849 1800 1730 1700 1963 1960 1972 1970 1976 1970 B2 の式は =IF(MOD(A2,100)<50,FLOOR(A2,50),ROUNDDOWN(A2,-1)) 多様なデータでチェックし、反する結果が出たらこの回答を無視してください。
お礼
ありがとうございます。大変勉強になりました。
お礼
ありがとうございます。大変勉強になりました。