• ベストアンサー

EXCELの関数について(IF、ROUND)

エクセルの数値の丸め方について エクセル初心者です。今までの投稿で近い投稿が無かったので、質問させて頂きます。 例として、ある数値が小数第1位まであるとします。 (1)その値が300未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 (2)その値が300以上1000未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 整数第1位の数値が2以下のとき切り捨てる。3以上6以下のとき5とする。7以上のとき切り上げる。 (3)その値が1000以上10000未満のとき 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 整数第1位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。 このような関数、もしくはVBAの設定を詳細に教えて頂けないでしょうか?よろしくお願いします。

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

  • ベストアンサー
回答No.10

#1です =CHOOSE(MATCH(A3,{0,300,1000,10000,9999999}), ROUND(A3,0), ROUNDDOWN(A3,-1)+LOOKUP(A3-ROUNDDOWN(A3,-1),{0,2.5,6.5},{0,5,10}), ROUND(A3+0.5,-1),ROUND(A3+5.5,-2)) CHOOSE(MATCH(A3,{0,300,1000,10000,9999999}) で条件分岐しています。最大値を9999999としました 300まで ROUND(A3,0) 単なる四捨五入 ~1000まで ROUNDDOWN(A3,-1)+ LOOKUP(A3-ROUNDDOWN(A3,-1),{0,2.5,6.5},{0,5,10}) 整数第一位で切り捨てたもの+ 下2桁を条件分岐して 0(2.5以下)か5(~6.5)か10(6.6~)を足す ~10000まで ROUND(A3+0.5,-1) 0.5を足して整数第一位で四捨五入 ~9999999 ROUND(A3+5.5,-2)) 5.5を足して整数第ニ位で四捨五入 299.4 299 299.5 300 299.9 300 300 300 300.5 300 302.4 300 302.5 305 996.4 995 996.5 1000 999.9 1000 1000 1000 1002.5 1000 1004.4 1000 1004.5 1010 1014.4 1010 10044.4 10000 10044.5 10100 401.8 400 531.5 530 ←は530で正解だと思いますが?

nkgw_4a_t
質問者

お礼

ご連絡大変遅くなりました。 ご回答ありがとうございます。 まさに求めていた数式で回答です。 まずは、CHOOSEとMATCH関数の複合で条件分岐するのですね。 解りやすい解説で大変勉強にもなりました。 この度は、丸投げ質問で他回答頂いた皆さんにも ご迷惑をおかけしました。 ありがとうございました。

その他の回答 (11)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.12

どの部分でエラーになっているのかを解析するのにも、長い式を書くより、分けて書いたほうが、エラー部分が判りやすいです。 その長い式を、分けて書いて、ご自分で解明する努力をしましょう。

nkgw_4a_t
質問者

お礼

自分で数式を分解して、時間掛けて解析した上での質問です。 どうしても解明できなかった為、質問しました。 ありがとうございました。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.11

最初から1つの式を作ろうとせずに、いくつかのセルに計算式を書いて、段階的に処理してから、最終的に1つの式を作るようにしましょう。 と言っても、ぴんときませんよね。 たとえば、 A1:入力値 A2:数式:A1に対して、「小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。」 A3:数式:A1に対して、「小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。」 A4:数式:A3に対して、「整数第1位の数値が2以下のとき切り捨てる。3以上6以下のとき5とする。7以上のとき切り上げる。」 A5:数式:A1に対して、「小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 A6:数式:A5に対して、「整数第1位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。」 A7:数式:A1が300未満のときはA2、A1が300以上1000未満のときはA4、A1が1000以上10000未満のときはA6 というようにすれば、A7が求めたい値になります。 A2とA3とA5は同じ式になるので、まとめてしまっても良いでしょうね。 A1:入力値 A2:数式:A1に対して、「小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。」 A3:数式:A2に対して、「整数第1位の数値が2以下のとき切り捨てる。3以上6以下のとき5とする。7以上のとき切り上げる。」 A4:数式:A2に対して、「整数第1位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。」 A5:数式:A1が300未満のときはA2、A1が300以上1000未満のときはA3、A1が1000以上10000未満のときはA4 まともな計算結果を得られるようになったら、 A3の式の中に書かれてある「A2」を、A2に書かれてある数式に置き換えて、 A4の式の中に書かれてある「A2」を、A2に書かれてある数式に置き換えて、 A5の式の中に書かれてある「A2」を、A2に書かれてある数式に置き換えて、 A5の式の中に書かれてある「A3」を、A3に書かれてある数式に置き換えて、 A5の式の中に書かれてある「A4」を、A4に書かれてある数式に置き換えて、 とやれば、最終的に、A5は、A1だけを使った数式になります。 上記の場合のA2、A3、A4と言った作業セル(作業列?作業行?)を残しておいても良いのであれば、無理やり1つのセルに長ったらしい数式を書くよりも、上記の「まともな計算結果を得られるようになったら」の時点での状態にしておいたほうが、ずっと解りやすい(=メンテしやすい)です。 見栄えが気になるのであれば、その列か行を非表示にすれば良いだけです。

nkgw_4a_t
質問者

お礼

確かにそうですよね。 段階を踏んで、分けて計算するようにトライしてみます。 ご意見ありがとうございました。 しかし、次の数式がなぜエラーになるのかが、いまだ不明です。 本件とは、話がヅレますが、 どなたか解明していただけるとありがたいです。 =IF(K28<3000,ROUND(K28,-1),IF(AND(K28<10000,MOD(ROUND(K28,-1)/10,10)=0),ROUND(K28,-2),IF(AND(K28<10000,MOD(ROUND(K28,-1)/10,10)<=2),ROUNDDOWN(K28,-2),IF(AND(K28<10000,MOD(ROUND(K28,-1)/10,10)<=6),ROUNDDOWN(K28,-2)+50,IF(AND(K28<10000,MOD(ROUND(K28,-1)/10,10)>=7),ROUNDUP(K28,-2),IF(AND(K28<100000,MOD(ROUND(K28,-1)/10,10)<=4),ROUNDDOWN(K28,-2),IF(AND(K28<100000,MOD(ROUND(K28,-1)/10,10)>=5),ROUNDUP(K28,-2),ROUND(INT(K28+5),-2))))))))

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

No.7です! 前回で失礼しようと思っていたのですが・・・ No.7の数式では10000以上の場合はちゃんと表示されなかったので また、顔を出してしまいました。 =IF(A1<300,ROUND(A1,0),IF(A1<1000,ROUNDDOWN(A1,-1)+INDEX($F$3:$F$6,MATCH(MOD(ROUND(A1,0),10),$E$3:$E$6,-1)),IF(A1<10000,ROUND(ROUND(A1,0),-1),IF(MOD(A1,100)<=44.4,ROUNDDOWN(A1,-2),ROUNDUP(A1,-2))))) に変更してみてください。 尚、nkgw_4a_tさんが考えられた数式を確認したかったのですが、 目も痛くなり、かなり疲れました。 (歳には勝てませんねぇ~・・・(ーー;)) また・・・時間があればゆっくり数式を確認させてもらいたいと思います。 それではおやすみなさい。m(__)m

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

大きく分けて条件が4つあり 小数点第1位の条件 整数第1位の条件 条件が満たされるときが値(値ならVLOOKUPのTRUE型も考えるのだが)ではなく、式(切捨てなど・処理)である の4つあり複雑で、有るので、VBA(でユーザー関数を作る)でやれば素直に区分けしてコードを記述できる。CASE分というのが使える。 http://oshiete1.goo.ne.jp/qa1969641.html ーー 思いつきだが、元の数を10倍し、結果を1/10するのはどうだろう。 また桁の数字は、文字列としてRight関数で捉えられると思う。 >4以下のとき切り捨て、5以上のとき切り上げる、のパターンが多いので四捨五入で対応できそう。 質問者がVBAが判るかどうか判らない。 関数の信奉者が多い。 丸投げ的質問なので、具体的コードはどうしようと思ったが 標準モジュールにユーザー関数Shoriを作る・ Function shori(a) a = a * 10 Select Case a Case Is < 3000 '300未満 a = a + 5 a = a / 10 shori = Int(a) Exit Function Case Is < 10000 '300以上1000未満 a = a + 5 a = a / 10 a = Int(a) a = a * 10 Select Case Right(a, 2) Case Is <= "20" MsgBox Right(a, 2) Mid(a, Len(a) - 2 + 1, 1) = "0" Case Is < 70 Mid(a, Len(a) - 2 + 1, 1) = "5" Case Else Mid(a, Len(a) - 2 + 1, 1) = "7" End Select a = Int(a / 10) shori = a Exit Function Case Is >= 10000 '1000以上 a = a + 5 a = a / 10 a = Int(a) a = a * 10 Select Case Right(a, 2) Case Is <= 40 a = Int(a / 100) * 100 Case Else a = a + 50 End Select a = Int(a / 10) shori = a Exit Function Case Else '条件は質問では不明?ーー(注1) End Select End Function 結果 A列   B列(質問者の答え  D列式 =shori(A1)を式複写 299.9 300 300 123.2 123 123 123.3 123 123 123.4 123 123 123.5 124 124 123.6 124 124 123.7 124 124 123.8 124 124 123.9 124 124 1234.4 1230 1230 1234.5 1240 1240 1234.6 1240 1240 1234.7 1240 1240 1234.8 1240 1240 1234.9 1240 1240 531.5 531 530 532.6 535 535 533.7 535 535 535.8 535 535 535.9 535 一箇所違うがトレースに根尽きた。 #3のお礼の部分の条件は省略した。(注1) あとから追加されたので。 それにしても複雑なルールだのう。

nkgw_4a_t
質問者

お礼

ご回答ありがとうございます。 一度VBAでもトライしてみます。ありがとうございました。

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

何度も何度も・・・ごめんなさい! No.5・6です!確認した結果では 先ほどの数式では 仮にA1=549.8 のような場合は  表の 0~2の行を参照してしまいますので、540 となってしまいます。 ↓の画像の行も増やしてもらって・・・ =IF(A1<300,ROUND(A1,0),IF(A1<1000,ROUNDDOWN(A1,-1)+INDEX($F$3:$F$6,MATCH(MOD(ROUND(A1,0),10),$E$3:$E$6,-1)),IF(A1<10000,IF(MOD(A1,100)<=44.4,ROUNDDOWN(A1,-2)),ROUNDUP(A1,-2)))) に訂正してみてください。 詳しく確認していませんので、他に希望通りに表示されない数値があるかもしれません。 尚、A1に入る数値は小数点第1位までと限定させてもらっています。 ほんとぉ~にっ!何度もごめんなさい。m(__)m 

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

No.5です! たびたびごめんなさい! 一番大切な数式を回答していませんでした。 A1セルの値をB1セルに表示させるとします。 これも結構長い数式になりますが・・・ B1=IF(A1<300,ROUND(A1,0),IF(A1<1000,ROUNDDOWN(A1,-1)+INDEX($F$3:$F$5,MATCH(MOD(ROUND(A1,0),10),$E$3:$E$5,-1)),IF(A1<10000,ROUND(ROUND(A1,0),-1),IF(MOD(A1,100)<=44.4,ROUNDDOWN(A1,-2),ROUNDUP(A1,-2))))) です。 今、数式をコピー&ペーストしてみましたが、 この式もほんと!長いですねぇ~!m(__)m

nkgw_4a_t
質問者

補足

何度もご回答ありがとうございます。 No.3の数式を後で自分なりに解析し、大体理解できました。 ただ、No.6も同様ですが、次の数値が入ると希望する数値が得られません。恐らくMOD関数の割り切り数がOとなる為、だと思うのですが。。。 (例) 399.5-399.9間が390となります。 同様に499.5-499.9が490、599.5-599.9~999.5-999.9 長くなりますが、No.3を次の数式にすれば良いのですか? B1=IF(A1<300,ROUND(A1,0),IF(AND(A1<1000,MOD(ROUND(A1,0),10)=0),ROUND(A1,-1),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=2),ROUNDDOWN(A1,-1),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=6),ROUNDDOWN(A1,-1)+5,IF(AND(A1<1000,MOD(ROUND(A1,0),10)>=7),ROUND(INT(A1+0.5),-1)))))) なお、10000以上の条件を付け加えた場合は、 B1=IF(A1<300,ROUND(A1,0),IF(AND(A1<1000,MOD(ROUND(A1,0),10)=0),ROUND(A1,-1),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=2),ROUNDDOWN(A1,-1),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=6),ROUNDDOWN(A1,-1)+5,IF(AND(A1<1000,MOD(ROUND(A1,0),10)>=7),ROUNDUP(A1,-1),IF(AND(A1<10000,MOD(ROUND(A1,-1),10)<=4),ROUNDDOWN(A1,-2),IF(AND(A1<10000,MOD(ROUND(A1,-1),10)>=5),ROUNDUP(A1,-2),ROUND(INT(A1+0.5),-1)))))) で良いでしょうか?なぜか数式エラーが出ます?? 更にもし、桁数が変わると次の数式でOKでしょうか? IF(A1<3000,ROUND(A1,-1),IF(AND(A1<10000,MOD(ROUND(A1,-1)/10,10)=0),ROUND(A1,-2),IF(AND(A1<10000,MOD(ROUND(A1,-1)/10,10)<=2),ROUNDDOWN(A1,-2),IF(AND(A1<10000,MOD(ROUND(A1,-1)/10,10)<=6),ROUNDDOWN(A1,-2)+50,IF(AND(A1<10000,MOD(ROUND(A1,-1)/10,10)>=7),ROUNDUP(A1,-2),IF(AND(A1<100000,MOD(ROUND(A1,-1)/10,10)<=4),ROUNDDOWN(A1,-2),IF(AND(A1<100000,MOD(ROUND(A1,-1)/10,10)>=5),ROUNDUP(A1,-2),ROUND(INT(A1+5),-2)))))))) ほんと、ごめんなさい。続けて、質問してしまって。。 よろしくお願いします。 以上を、VBAで行うと複雑になりますかね???

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

こんばんは! No.3です。 昨日は失礼しました。 何とか希望に近い形の回答のようなので安心しました。 >532.5であれば、533⇒535と2回計算をしないと無理なはずです。 とありますが、 IF関数で条件分けしていますので、2回計算とは少し違うと思います。 例えば昨日の数式の中の IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=2),ROUNDDOWN(A1,-1) という部分は A1の数値が1000より小さくて、小数点第1位を四捨五入した整数の1位の値が2以下の場合は、A1の整数1位を切り捨てます。 (仮にA1=532.2 であれば、530になります) と言うような感じの数式を羅列しただけです。 ところで本題ですが、昨日の数式ではあまりに長すぎますし、10000以上の場合の回答もしなくてはならないと思いますので 新たに、新しく考えてみました。 300≦A1<1000 の場合の条件分けが面倒なので表にして、小数点第1位を四捨五入した後の 整数1位の値を参照して返す方法です。 ↓の画像を参考にしていただければいいと思います。 尚、新たに10000以上の場合の条件がありますが、 これを丸めなどの関数を使うとこれだけでかなりの数式になると思いますので、 私の解釈として、仮に11244.4以下→11200 11244.5以上→11300 となるような解釈になっています。 (11244.5は0.5を四捨五入→11245となるので5を四捨五入→11250となり、11250の5を四捨五入→11300) と言うような感じです。 もしこれが間違っていればごめんなさい。 どうも長々とごめんなさい。 参考になれば幸いです。m(__)m

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 =IF(A1>=10000,FLOOR(A1+55.5,100),IF(A1>=1000,FLOOR(A1+5.5,10),IF(A1>=300,IF(MOD(A1,10)>6,FLOOR(A1+3.5,5),FLOOR(A1+2.5,5)),FLOOR(A1+0.5,1))))

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

こんばんは! 回答が質問にあっているかどうか分かりませんが・・・ とりあえずIF関数でやってみました。 かなり長い数式になってしまいました。 A1セルをB1セルに表示させると仮定します。 B1セル=IF(A1<300,ROUND(A1,0),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=2),ROUNDDOWN(A1,-1),IF(AND(A1<1000,MOD(ROUND(A1,0),10)<=6),ROUNDDOWN(A1,-1)+5,IF(AND(A1<1000,MOD(ROUND(A1,0),10)>=7),ROUNDUP(A1,-1),ROUND(INT(A1+0.5),-1))))) としてみてはどうでしょうか? 尚、10000以上の場合でも(3)の条件が当てはまってしまいます。 表などを使うともっと簡単な式になるかも知れませんが、 今はこの程度の回答しか思い浮かびませんでした。 以上、参考になれば幸いです。 的外れの回答なら読み流してくださいね。m(__)m

nkgw_4a_t
質問者

補足

ご回答ありがとうございます。 すごいです。まさしくこの回答です。 同じセル内で、2重丸めができるのですか? 例えば、 532.5であれば、533⇒535と2回計算をしないと無理なはずです。 926.4であれば、926⇒925。。。 この関数の説明を是非お聞きしたいです。 なお、10000以上の場合は、 小数第1位の値が4以下のとき切り捨て、5以上のとき切り上げる。 整数第1位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。 整数第2位の数値が4以下のとき切り捨てる。5以上のとき切り上げる。 としたいです。 続けて質問して、ご迷惑と思いますが、よろしくお願いします。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

401.8のときは、どうなって欲しいのでしょうか?

nkgw_4a_t
質問者

補足

401.8のときは、小数第一位が5以上ですから切り上がり、整数第一位が2になります。2以下ですので切り捨てて、400にしたいです。

関連するQ&A

  • エクセルの関数で

    次の3つの条件式をエクセルに一つの計算式で表すにはどうすればよいでしょうか ・50,000未満は  ×0.3%した数値(小数点以下切り捨て)  例49,999の場合は149 ・50,000以上60,000未満は5000 ・60,000以上70,000未満は6000 以上よろしくお願いします。

  • エクセル関数で

    お世話になります。先日こちらで教えていただきました関数で、変更箇所がありましたので悩んでおります、、、 ご存知の方ご指導いただけないでしょうか、、、 ■下記の数値の小数点以下3桁目をある条件で切上げ・切捨てを行いなさい。 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。 ただし、小数点以下3桁目が0の場合は値が23.231以上は 小数点以下3桁目を切上げ(*1) 23.230以下の場合は少数点以下2桁目を1減少させる(=0.01マイナス)(*2) 例) 23.151 → 23.15    23.230 → 23.23    23.231 → 23.24 (*1) 23.240 → 23.25 (*2) 23.150 → 23.14 小数点以下3桁目が0の場合、23.230以下の場合小数点以下2桁目を 1減少させるという関数がわかりません。 下記の関数にどのような式を加えればよいのでしょうか? =IF(A1>=23.231,ROUNDUP(A1+0.001,2),ROUNDDOWN(A1,2)) ※上記の式だと、小数点以下3桁目が0の場合、23.231以上の場合は 切上げ、23.230以下の場合は切り捨てになります。 宜しくお願い致します。

  • エクセル 関数を教えてください。

    エクセル 関数を教えてください。 数点第一位の値が5のときだけ小数点第二位の値で切り上げか切り捨てかを判断します。 小数点第二位が0のときは切り捨て、1以上のときは切り上げ計算になります。 (例)4.50点→4点 、 4.51点→5点 小数点第一位が5以外の場合は四捨五入と同じ要領です。 ●A1に数字入力、B1に計算式をお願いします。

  • エクセルで端数処理をする関数について

    お世話になります。 エクセルで、任意の端数処理をする関数を教えてください。 1の位と小数点第1位が以下のとき、1の位を次の数に端数処理したいのです。 2.5未満 → 0.0(切り捨て) 2.5以上~7.5 → 5.0 7.5以上 → 10.0(繰上げ) (例) 101.1 → 100.0 202.2 → 200.0 303.0 → 305.0 404.4 → 405.0 508.6 → 510.0 ・・・・・ どなたか教えてください。 よろしくお願いいたします。

  • エクセルでSUM関数の小数点以下を切り捨てる方法

    エクセル初心者です。 SUM関数で計を求めた数値に小数点があった場合、 小数点以下を切捨てする関数、計算式、を教えてください。

  • エクセル関数で

    お世話になります。下記の数値の小数点以下3桁目をある条件で 切り上げ・切捨てを行いたいのですが、その条件に加えて小数点以下3桁 目が0でも切上げにする場合の数式を教えていただけないでしょうか? 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。ただし、23.231以上で切上げる場合、 小数点以下3桁目が0の場合でも切上げる(*) 例)23.151 → 23.15   23.150 → 23.15   23.230 → 23.23   23.231 → 23.24 (*) 23.240 → 23.25 切り上げ、切捨ての数式はIF関数でできたのですが、23.231以上で 切上げる場合、小数点以下3桁目が0の場合でも切上げるというのが 分かりません、、、 =IF(A1>=23.231,ROUNDUP(A1,2),ROUNDDOWN(A1,2)) ご指導いただきたく、宜しくお願い致します。

  • Excelの関数について

    Excelの関数について教えて下さい。 小数点2位未満の端数について、切り上げor切り捨ての処理をしたいのですが、 具体的には、計算結果が50銭円以下の場合には切り捨てて0円に、 50銭1厘以上の場合には切り上げて1円にしたいのですが、 どんな関数を使えばよいのでしょうか? (例1)A1:¥64、B1:0.008、C1:A1*B1=¥0.512→¥1 (例2)A2:¥63、B2:0.008、C2:A2*B2=¥0.504→¥0 ※雇用保険料の計算です、  A列には給料の金額が入り、  C列には円未満が50銭以下の場合は円未満切り捨て、円未満が50銭1厘以上の場合は円未満切り上げとなります。 宜しくお願いいたします。

  • Excelのrounddown関数について

    Excelのrounddown関数について教えてください。 Excel2003でrounddownで0(小数点以下を切り捨て)を入れて計算させた所、例えば、17,600 *0.1=1759となってしまい、1760にはなりません。単純に考えても、電卓で計算しても17,600 *0.1=1760になるはずですが、何故このようになってしまうのでしょうか? 因みに式ですが、=ROUNDDOWN($P4*0.1,0)で、P4(隣のセル)の数値を計算します。 例の場合、P4には3200*5.5の結果が入りますので、ここにも小数点以下の数値は発生しません。 何か設定が違っているのでしょうか?

  • エクセルの計算について質問です

    エクセルの計算について質問です 数値の計算で、電卓で算出した値とエクセルで計算した値とが異なり困ってます。 【計算内容】 A(整数) × B(小数部2桁) = C(整数) ※Cは小数点以下切捨てとしたい ※エクセル計算ではROUNDDOWNを使用 【実際の計算結果】 (1)10,000,010,000.00 × 9999.99 = エクセル:99,999,999,999,999、電卓:99,999,999,999,999 (2)10,000,010,000.01 × 9999.99 = エクセル:100,000,000,000,000、電卓:99,999,999,999,999.9999 (1)は電卓とエクセルで結果は一致しますが、(2)は一致しません。 エクセルで小数点以下第4位が丸められてるようです。 【エクセルで算出したい値】 (2)ではDに999,999,999,999と出力したいです。 関数INTやROUNDDOWNを使ってみたのですが、うまくいきませんでした。 セルCの書式設定と、どの関数を使用すればよいのか教えていただけると大変助かります。

  • エクセルのif関数で8つ以上ある場合について教えて下さい。

    エクセルのif関数で8つ以上ある場合について教えて下さい。 バージョン:エクセル2002 以下のような場合       1,000未満 → A 1,000以上 1,500未満 → B 1,500以上 2,000未満 → C 2,000以上 2,500未満 → D 2,500以上 3,000未満 → E 3,000以上 3,500未満 → F 3,500以上 4,000未満 → G 4,000以上 4,500未満 → H 4,500以上 5,000未満 → I 5,000以上       → J 現在のエクセルバージョンでは、 if関数の7レベルを超えてしまい、Lookup関数では一致した値しか拾ってくれません。 このような場合、以上、未満などの比較演算子を使用した範囲内の数値の分岐結果を取得するには どのようにすればよいのでしょうか? 現在は、次のように表を作成して行っております。     A     B   C  ←セル列  1        1,000  A  2  1,000   1,500  B  3  1,500   2,000  C  4  2,000   2,500  D  5  2,500   3,000  E  6  3,000   3,500  F  7  3,500   4,000  G  8  4,000   4,500  H  9  4,500   5,000  I  10  5,000        J  ↑ セル行 別の関数などを使用してできる場合(VBA不可)などでも構いませんので、 どなたかご教授願います。 宜しくお願いします。

専門家に質問してみよう