Excel関数(ROUNDDOWN)について

このQ&Aのポイント
  • Excel関数(ROUNDDOWN)の使い方と正しい結果の取得方法について教えてください。
  • ROUNDDOWN関数を使用して計算結果を整数で表示する方法や、小数点以下を表示させない方法について教えてください。
  • ROUNDDOWN関数を使って計算結果を切り捨てる際に、意図しない結果が表示される場合の解決方法について教えてください。
回答を見る
  • ベストアンサー

EXCEL関数(ROUNDDOWN)について

基礎的なことで申し訳ありませんが、EXCEL関数(ROUNDDOWN)について教えて下さい。 現在、EXCEL関数(ROUNDDOWN)について求めている答えが返ってこなくて困っています。 なにか手順を誤っているのでしょうか。  例 : 35,000÷30×12 = 13,999.99999999・・・・ という結果になりますが、      欲しい結果は、「13,999」です。ROUNDDOWN関数を使って求めようとしているのですが、      =ROUNDDOWN(35,000/30*12,0) = 14,000 と切り上がった数値が返ってきます。 また計算結果を文字にして他のセルに貼り付けても「14,000」という数値が表示されます。 また計算結果に少数点以下を表示させても「14,000.0000000」と表示されます。 私のPCがおかしいかと思い他のPCでも同様の処理を行ってみましたが、結果は同じです。 どこの手順が誤っているか、分かりません。どなたかご教授願います。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8518/19364)
回答No.6

一つ、面白い実験をしてみましょう。 新しいブックを作って、各セルに、以下のように入力してみて下さい。 A1: =1/3 A2: =0.333333333333333333333333333333333333333333333333333 A3: =A1*3 A4: =A2*3 B1: =(A1=A2) B3: =(A3=A4) 結果、以下のようになったはずです。   A         B 1 0.333333333  TRUE 2 0.333333333 3         1  FALSE 4         1 B1セルの「TRUE」の表示は「A1とA2は等しい」と言う事を意味します。 B3セルの「FALSE」の表示は「A3とA4は等しくない」と言う事を意味します。 A3、A4は、A1、A2をそれぞれ3倍したのですから、元が等しいなら、3倍しても等しい筈です。 ですが「3倍した物同士は等しくない」と言う結果がB4に表示されています。 この場合、本当にそうなのか、確かめる事が出来ます。 A列の全体を範囲指定して、セルの書式を「数値」にして、小数点以下の桁数を「20」とかにしてみると確かめられます。 小数点以下20桁にすると   A                  B 1 0.33333333333333300000  TRUE 2 0.33333333333333300000 3 1.00000000000000000000  FALSE 4 0.99999999999999900000 と言う表示になった筈です。確かに「A1とA2は同じ値」で「A3とA4は異なる値」であるのが見て判ります。 これで判るのは「1/3と0.333333333333333333333333333333は、見た目は同じ値だけど、本質は違う値」と言う事です。 これは「35,000÷30×12と13999.99999999は、本質は違う」と言う事を意味します(この場合は値も違ってるけど) 因みに、コンピュータの2進数の世界では「0.1」と言う値は循環少数になって正確に0.1を表す事が不可能なので、0.1を多用する(つまり、10で割る)と、誤差が溜まって不正確な値が出て来ます。

kakunin3
質問者

お礼

その通りですね。 1166.6666666666666666666666666666666666666666666666666666666666666となっても 12を乗ずれば14000.000000000000000000000000000000000000000000000000000・・・・・2(終わりとすれば)ですので、ROUNDDOWNであれば14000は正解でした。 1166.66666という少数点の乗数という概念と、電卓の表示に惑わされてしまいました。 貴重な時間どうもありがとうございました。

その他の回答 (5)

  • chie65535
  • ベストアンサー率43% (8518/19364)
回答No.5

>例 : 35,000÷30×12 = 13,999.99999999・・・・ という結果になりますが、 いいえ。なりません。 エクセルで =35000/30 と言う式を打ち込むと(標準のセル書式では) 1166.667 になります。セルの書式を「数値」にして「小数点以下の桁数」を20とかにしてみて下さい。 1166.66666666667000000000 と言う表示になります。 これを12倍する式 =1166.6666666666700000000*12 を打ち込むと、結果は 14000.00000000000000000000 になります。 14000をどうROUNDDOWNしても、絶対に13999にはなりません。 嘘の値である13999が欲しい場合は、嘘の式 =ROUNDDOWN(ROUNDDOWN(35000/30,1)*12,0) と書いて、EXCELに嘘を表示させるしかありません。

kakunin3
質問者

お礼

その通りですね。 1166.6666666666666666666666666666666666666666666666666666666666666となっても 12を乗ずれば14000.000000000000000000000000000000000000000000000000000・・・・・2(終わりとすれば)ですので、ROUNDDOWNであれば14000は正解でした。 1166.66666という少数点の乗数という概念に惑わされてしまいました。 貴重な時間どうもありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

手順以前に、あなたの計算が間違っています。 3500/30*12=1400です。13999.99999…ではありません。 13999.99999…は、おそらく8桁ぐらいしか表示できない電卓で計算した結果ではないですか?

kakunin3
質問者

お礼

その通りですね。 切捨て関数では、1,400の値が正解です。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

どのパソコンでも同じ値が表示されますね。 計算結果は整数の表示にしたいわけですから例えば1よりかなり小さい数値を式の上で引くことで良いでしょう。 =ROUNDDOWN(35000/30*12-0.01,0)

kakunin3
質問者

お礼

ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>例 : 35,000÷30×12 = 13,999.99999999・・・・ という結果になります いいえ。それは多分「電卓計算」でそうなると思われたのだと思いますが,エクセルはもっと「賢い」ので14000という『正しい』計算結果になります。 35,500÷30×12 =35500 ÷(3×10)×12 =35500 ÷10×4 繰り返しますが,ナニが間違っていると言えば「アナタの期待した計算結果の方が間違って」ます。 それでも敢えてご希望の計算結果を求めたいなら, =ROUNDDOWN(ROUNDDOWN(35000/30,8)*12,0) などのようにすることは出来ます。

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

35000÷30はエクセルで小数点以下を表示させていくと 1166.66666666667と表示されます。 例えばROUNDDOWN(35000/30,10)なら 1166.6666666666と表示されます。 35000÷30×12=35000×2/5=14000で正しいです。 14000をROUNDDOWNしても14000のままです。 なので、計算機と同じっぽくしたいなら ROUNDDOWN(35000/30,10)×12 として小数点をいっぱい表示させてやると 13999.9999999992と表示されます。 ここで13999という結果が欲しければ ROUNDDOWN(ROUNDDOWN(35000/30,10)*12,0) とすれば 13999という結果が得られます。

関連するQ&A

  • 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の結果が入りますので、ここにも小数点以下の数値は発生しません。 何か設定が違っているのでしょうか?

  • ROUNDDOWN関数についての質問です

    ROUNDDOWN関数について教えてください。 (1)セルA1に8471.3 , セルA2に 8407.4 という数字を入れて  セルA3に ROUNDDOWN(A1-A2,1)  という式を入れました。結果が63.8になります。  なぜ63.9に答えがならないのでしょうか。  同じ式で桁を減らしてみて  A1に1.3 が A2に 0.4 という数字を入れた場合は  計算結果が0.9 と正しくなります。  あと少しずつ数字を変えていって試してみたら  A1に8471.8 , A2に 8407.4 の計算結果が 64.3 と  なりました。 (2)このROUNDDOWN以外でいい計算式あれば教えてください。

  • rounddownではないのですか?

    エクセル2003です。A1からA5まで計算し、A6に答えが出るとします。その数値が351.5の場合はA7に350に、352の場合も同様に350に、358の場合は360に、358.5の場合も360にならないのでしょうか。A7 のセルにrounddownを挿入したりしたのですが、桁数がよくわからず、351.5のときは351になります。A6に351.5と表示したままA7に350と表示させたいのです。よろしくお願いします。

  • EXCELのROUNDDOWN関数について

    いつもお世話になります。 ROUNDDOWN関数で ROUNDDOWN(25/42*1.008,5)という計算式の計算結果が 0.600000となってしまいます。0.599999とならないのが なぜなのかわかりません。 またROUNDDOWN(25/32*1.007,5)では0.78671と小数点第6位が切り捨てられます。 アドバイス宜しくお願い致します。

  • Excel関数

    エクセルでA1のセルに計算式を入れB1のセルに計算結果を少数第二位で 四捨五入されたものを表示する関数を教えて下さい。 それに、後で計算式の変更も結果に反映されるようにしてたいです。 よろしくおねがいします。

  • ROUNDDOWNの計算が、合わないのです。

    派遣会社の事務をしてますが、取引先と計算が合わなく困ってます。   A1に時間内金額 1130円これに0.25を掛けて、計算しているのですが、   =A1*0.25 すると283になり 取引先と計算が合わないといわれ、 少数切り捨てにするのかと思い ROUNDDOWN(A1*0.25,0)と計算式をかえたのですが、 答えの282でなく  先方は、280に なってるのですが、 どのような関数式を入れると280になるのか分かりません 初心者でも分かるように教えていただきたいのですが、 よろしくお願いします。

  • Excel関数について。

     ROUNDDOWN関数を使って式を作ったのですが、1:25や5.36とかの  場合は1:00や5とゆうように表示されるのですが、0:15や0.33  の場合はセルが空白になってしまいます。0:15や0.33の時にでも  0:00や0と表示させる方法はありますか?ツール→オプションの  ゼロ値の表示でも出来るのですが、それだと数値のない所まで  ゼロ値が表示されてしまうので、出来れば算式で出来る方法が  あれば教えて下さい。宜しくお願いします。出来れば数値と時刻、  別々の式だと有難いです。

  • EXCELの関数、INT関数とROUNDDOWN関数の使いわけ

    EXCELの関数、INT関数とROUNDDOWN関数はどういうときに使い分けをするのでしょうか?教えてください。 =INT(8.9)では表示は8 =ROUNDDOWN(8.9,0)では表示は8 と同じ結果が得られますよね。 どういった時に使い分けをするのでしょうか?

  • EXCEL2000で1セル内の計算式の結果を表示させる関数

    EXCEL2000で1セル内の計算式の結果を表示させる関数 下記の計算結果を表示させる関数を教えて下さい 16+23+35 74 ←この結果になる関数式を教えて下さい

  • ROUNDDOWNで0.234を 0.23に変更させたセル(A)があり

    ROUNDDOWNで0.234を 0.23に変更させたセル(A)があります。 そのセル×7をすると、 1.638と表示されます。(B) そこはROUNDの関数をいれてあるので、1.64(B)と表示されます。 これを、見たままのA×7で、roundの式をいれて1.63と表示させるにはどうしたらいいでしょうか? あと、関数って、すべてこんな結果になるのでしょうか? 設定で切り上げ切捨てをしても、実際計算すると、もとの数字のまま引用されてしまうというような。