エクセルの四捨五入(ROUND関数? 書式設定?)

このQ&Aのポイント
  • エクセルでの四捨五入方法について、方法や違いについての意見が分かれています。計算の途中での丸め方によって誤差が大きくなる可能性があるため、丸めるのは最終結果にするべきとの意見もあります。
  • エクセルでの表作成において、セルの書式設定で表示形式を設定する方法と、関数を使って丸める方法の違いについても意見が分かれています。両者の方法では最終結果が微妙に異なることがありますが、どちらが正しいかは個人の判断によります。
  • 周りの意見によれば、財務計算などの金額に関わる計算においては、ROUND関数を使って四捨五入するのが一般的です。しかし、エクセルでの表作成においては、数値の表示を整数に統一するためにセルの書式設定を使う方法も一定の根拠があると言えます。見た目が大切とする人もいる一方で、計算結果を変更することはデータの改ざんに対する懸念があるとする意見もあります。
回答を見る
  • ベストアンサー

エクセルの四捨五入(ROUND関数? 書式設定?)

タイトルのとおりなのですが、エクセルで四捨五入するときは、ぶっちゃけた話、どちらが王道なのでしょうか? 私は、最終的な結果であればどちらもありだと思いますが、計算の途中であればround関数で丸めるのは誤差が大きくなるのでよくないと思っています。 よくある表の作成なのですが、縦横にある数字(整数)を入れていって、横列の平均を右側に、縦列の平均を下側に出し、さらに右端の平均値を計算して平均の平均を右下に出しているのですが、上記の理由から、私はセルの書式設定で表示形式の数値にして桁数ゼロにしています。 しかし別のある人は、同じような表を作るのに、右端の平均を一つ一つ「=ROUND(AVERAGE(A4:F4),0)」などと関数で丸めてから縦の平均を出しています。 当然ながら、私のやり方とその人の方法では最終結果(平均の平均)は微妙に違うことがよくあります。 その人に言わせると、「横の計算結果を見て検算する人がいたら縦の計算結果と合わないのはおかしいと思う」そうです。 でも横一列のデータもあるし、ちょっと見れば横平均の本当の値は小数になることは(小数を習っていれば)子どもでもわかります。 計算結果を小数で表示すればいいのでしょうけど、列幅の制約などもあって整数表示で統一することになっています。 ネットで検索したら、「消費税などの財務計算はそのつど四捨五入した値が本当の値なのでROUND関数を使うのが正解」というのがありましたが、ここでは金額を入力しているわけではありません。 業務上のことで明らかにできませんが、例えば警察の交通事故件数や学校のテストの点数みたいに、入力するのは整数でも平均値は小数になりうる性質のものです。 周りの第三者の意見を聞いてみると結構まちまちで、私の方法を支持する人も多いですが、中にはその人と同じく「見た目が大切」という人もいます。 私は途中計算を丸めるのは、極端に言えば違う値に変更(改ざん)するわけだから、見た目を綺麗にしようと画像を修正したSTAP細胞の論文みたいだと思うのですが、どうなのでしょうか?

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

>でも、このやり方も、くだんの彼は「縦の平均と同じにならない」と言う理由でいやがっています。 数値を丸めれば、それらを平均や合計した値は正確ではないというのは、33.3%の3つを足した値が100%にならない例からも明白なのではないでしょうか。 ただし、この場合も会計処理など特殊な例では加算して100%になるようにする特殊な処理もあるようです(すなわち1つを実際の計算値ではなく33.4%とする)。 >「特定の段階で四捨五入処理するような規則がある場合」というのがよくわからないのですが、私たちが作っているのは先に書きましたように財務計算表ではありません。 たとえば、何段階かの計算を連続して実行するようなケースでは、特定の段階(通常は意味のある数字)ごとに数字を丸めて表示し、それ以外は四捨五入操作を入れないのが一般的です。 今回のケースでは、小ブロック(横方向)の平均値に重要な意味があり、たとえば小数点以下1桁で表か判断する必要などがある場合です。 この場合でも全体の平均値(正確な意味)などを求めるときは、平均の平均を計算するのではなく、総平均を計算するのが一般的には正しい対応だと思います。

その他の回答 (6)

回答No.6

補足:私なら、「総平均を=平均の平均」という約束事自体を変えます。

回答No.5

>表示形式の方が正確な値だと思うのですが、いかがでしょうか? 要は、作成指針に基づくべきで、それが手前勝手なのが問題。 優劣を争うべき筋合いのもんじゃーないんでは・・

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>エクセルの四捨五入(ROUND関数? 書式設定?) 基本的に、消費税の取り扱いなど、端数の処理規則が決まっているものを除けば、通常は実数を残し表示形式で対応するのが数学的には正しいと思います。 >私のやり方とその人の方法では最終結果(平均の平均)は微妙に違うことがよくあります。 その人に言わせると、「横の計算結果を見て検算する人がいたら縦の計算結果と合わないのはおかしいと思う」そうです。 このようなケースとして添付画像右下のような商品の割合を一覧表示すると、計算値はそれぞれ33.33333・・・%の数字となりますが、表示形式で対応すると33.3%となり、それらの合計は99.9%ではなく100%にあります(これが正しい)。 これをROUND関数で表示すると当然99.9%になります。 >計算結果を小数で表示すればいいのでしょうけど、列幅の制約などもあって整数表示で統一することになっています。 割り算の伴うような計算では、かならず割り切れない数字になることがありますので、小数で表示すればよいというものではありません。 あと重要なことは、「平均の平均」のような計算値の平均のような計算をすると、正しい(全体の)平均値が得られないことがあります。 代表的にはデータ数が違う集団の平均値を平均する場合です。 今回のようなケースでは、たとえば添付画像の1回目のデータが3個しかなくその平均値が他の2回目の4つの平均値との平均を求めたいような場合です。 このようなケースで平均を求めるならデータ範囲全体の平均を求めるべきであって、行や列の平均の平均を計算することはできません。 ちなみに、このケースでも数学的に正しい平均を出したいなら表示形式で対応して実数で計算するのが正しいのは言うまでもありまえん。 まとめると、計算するときに特定の段階で四捨五入処理するような規則がある場合や、その四捨五入処理した値を使用して別の計算に使用する場合を除けば、表示形式で対応するのが、数学的にも問題がないので一般的方法だと思います。

ringxjjv
質問者

お礼

回答、ありがとうございます。 ご指摘のとおり、元になるデータの個数が違えば平均の平均は全体の平均じゃないですね。 言葉足らずでしたが、私たちが作っている表は横一列のセルの数は同じで空欄もなく、計算元の数の個数は同じです。 それでも、縦が1~5行、横がA~F列として、「=AVERAGE(A1:F5)」とやった方が簡単ですね。 でも、このやり方も、くだんの彼は「縦の平均と同じにならない」と言う理由でいやがっています。 「特定の段階で四捨五入処理するような規則がある場合」というのがよくわからないのですが、私たちが作っているのは先に書きましたように財務計算表ではありません。 それ以外でも常識的にそのような規則がある場合はあるのでしょうか? 企業秘密に触れるので、これ以上詳しく説明できないのですが、少なくともこの表の作成手順(といううのも実は正式なものはないのですが)には書いてありません。

noname#204879
noname#204879
回答No.3

》 …して平均の平均を右下に出している… 言葉尻をとらえるようだけど、複数の平均値の平均は、一般に、全体の平均値にはなりません。 【例】 1、2、3、1、2、3、1、2、3 の平均値は「2」 7、8、9 の平均値は「8」 「2」「8」の平均値は 5 1、2、3、1、2、3、1、2、3、7、8、9 の平均値は 3.5

ringxjjv
質問者

お礼

回答、ありがとうございます。 ご指摘のとおり、元になるデータの個数が違えば平均の平均は全体の平均じゃないですね。 言葉足らずでしたが、私たちが作っている表は横一列のセルの数は同じで空欄もなく、計算元の数の個数は同じです。 それでも、縦が1~5行、横がA~F列として、「=AVERAGE(A1:F5)」とやった方が簡単ですね。 でも、このやり方も、くだんの彼は「縦の平均と同じにならない」と言う理由でいやがっています。

回答No.2

(双方が歩み寄るには)私は、銀行型丸めを併用することを考慮すべき事案ではないかと思います。

ringxjjv
質問者

お礼

銀行型丸めという言葉は初めて知りました。さっき検索をかけて、なるほどと思いました。 ただ、これにしても普通の四捨五入より誤差が少ないというだけで、小数点以下何桁も計算してくれるエクセル(これも厳密には近似計算だそうですが)の方が正しい値ではないでしょうか? そのことも考え合わせると表示形式の方が正確な値だと思うのですが、いかがでしょうか?

回答No.1

何に使うかだと思います。 質問者様のように、データとしては改竄せずに残してやるのが私も良いと思いますが、 金額データのように一部を取り出して、別の尺度で見る財務諸表のようなものなら、 関数で丸めたほうが良いと存じます。

ringxjjv
質問者

お礼

回答、ありがとうございます。 質問にも書きましたが財務表ではありません。 「一部を取り出して、別の尺度で見る」という意味が今一わかりませんが、横の平均値だけを別の目的のため取り出すようなことはしていないと思います。受け取った側がどう使うかは未確定なところはありますがね。 企業秘密になるので詳しくは書けませんが、要は横の平均がこれだけですよ、縦の平均がこれだけですよ、全体を平均するとこうなりますよ、というのを周知するための表です。

関連するQ&A

  • Excel2000で変則的な四捨五入の関数を教えて下さい。

    関数式を教えて下さい。 小数点以下を四捨五入した結果を整数で出したいです。 但し、普通のROUND関数で出た答えを尚も、下一桁が5づつ飛ぶように.. たとえば、 100.5--101--100(求めたい値) 101.7--102--100(求めたい値) 102.5--103--105(求めたい値) 105.8--106--110(求めたい値) 112.4--112--110(求めたい値) 113.5--114--115(求めたい値) 118.5--119--120(求めたい値) こんな感じです。(中央の値は特に必要ではありません) 四捨五入し、且つ5の倍数の整数での値が欲しいです。 よろしくお願いします。

  • エクセルの四捨五入の合計

    エクセルで表計算をして、小数一位で四捨五入した場合ですが、横の計は四捨五入後の整数でいいのですが、縦の計をオートシグマで集計すると四捨五入前の計になり、合計があいません。これを四捨五入後の整数の合計にできないでしょうか?

  • ROUND関数で、四捨五入ができない。

    ROUND関数で、四捨五入ができない。 カラムの値が'8.5'の場合'9'になるはずなのですが、'8'となってしまいます。 解決方法ありますでしょうか? '4.5''6.5'の場合でも、四捨五入ができないです。 SELECT カラムA,ROUND(カラムA) FROM テーブル ----------------------------------------  カラムA |  ROUND(カラムA) ----------------------------------------   5.5   |   6          ←四捨五入ができている ----------------------------------------   8.5   |   8          ←四捨五入ができない ----------------------------------------   4.5   |   4          ←四捨五入ができない ---------------------------------------- XAMPP 1.7.3の MySQL 5.1.41を使用しています。

    • ベストアンサー
    • MySQL
  • Round関数は四捨五入?

    あるサイトで・・・ ”多くのRound関数は、偶数丸めを採用しており、 丸め単位のまんなかで、どっちつかずの場合は、偶数側を採用する。” ということが書いてあるのを読みました。 しかし、SQL Server2000のクエリで select round(1.25,1) と実行すると 1.2ではなく1.3 が返ってくるので、四捨五入されている気がします。 厳密な四捨五入と異なる値が返ってくるパターンはどういう式でしょうか? それとも、SQL Server2000のRound関数は厳密な四捨五入なのでしょうか? ご存知の方がいたら教えてください。 よろしくお願いします。

  • エクセルの表示形式で、10の桁で四捨五入した値を表示させるには?

    エクセルの表で、数字を四捨五入する方法にはROUND関数がありますが、関数で変換すると値そのものが変わってしまいます。 値はそのままで四捨五入した数字で表す方法を教えてください。 小数や一桁の整数までの四捨五入であれば、セルの書式設定・表示形式を「数値」にして小数点以下の桁数を指定してやれば簡単ですが、10の桁以上で丸めて表示させる方法を探しています。 例えば、9876→9880と表示させる書式設定の方法です。 値は計算に使うので、ROUND関数で実際に丸めたくないのです。 ユーザ定義を組み合わせるなどで、うまくできませんか?

  • round関数について

    試しにエクセルで次の計算をしてみてください。 -16.76 7.9 -11.45 -8.88 -1 4.26 33.78 以上を全部足します。つまり「=sum(a1:a7)」です。当然「7.85」になります。 次に四捨五入します。round関数で小数点第2位を四捨五入して、第1位まで表示させます。つまり、「=round(sum(a1:a7),1)」ということです。すると「7.8」を返しました。 ん?「7.9」なのでは?と思い、次にこんな計算をしてみました。 A・・・=round(sum(a1:a7),2) B・・・=round(A,1) つまり、Aでいったん小数点第3位を四捨五入させた上で、その値を今度はBで小数点第2位を四捨五入させ、最終的に小数点第1位まで表示させたわけです。すると、ちゃんと「7.9」を返しました。 なんでこんな風になるのでしょうか?どうして一発で「7.9」にならないのでしょうか?

  • エクセルのROUND関数について

    小数点以下を四捨五入して整数にするには,例えば ROUND(1.52,1) なら,2になると思うのですが, ROUND(1.52,01) としても2となります. 1としても0.1としても結果は必ず等しくなるのでしょうか? よろしくお願いします.

  • 四捨五入で計算された数字を、整数で返す関数を教えてください。

    エクセルで見積金額をだす時に、小数点以下非表示で計算すれば、100.4+100.9+100.4=301.7 302となります。 関数を使い小数点第1位四捨五入で、これを301にしたいのです。 小数点第一位を四捨五入して整数で返すと言うのでしょうか? (小数以下斬り捨てだと、300になります。INT関数がそうなのでしょうか?) すみません、関数がまだ良く分かりません。間違っていたり説明がまずかったなら、ごめんなさい。

  • 関数 ROUNDとセルの書式設定

    こんにちは。 EXCEL初心者です。 関数について、ふと思ったことがありましたので質問させてください。 ROUNDとか*UPや*DOWNという関数がありますよね? 調べてみるとこの関数の行う処理は、「値を指定した位で四捨五入する関数です。消費税の計算など小数点以下の位を四捨五入する時などに使えます」とのことですが、この処理は、「セルの書式設定」→「数値」で出来る設定と同じような気がするのですが、なにか違うのでしょうか? よろしければ「こんな使い方もあるよ」的なことを紹介していただけるとうれしいです。

  • Access2000 小数第3位で四捨五入

    質問させていただきます。 Access2000で以下の計算式を作りました。 金額 = Round(重量 × 単価,2) これは「金額」を小数第3位で四捨五入します。 ところが以下の数値の場合、正しく計算してくれません。 764.00 = 0.479 × 1595 本当は 764.005 だから 小数第3位で四捨五入すると 764.01 になると思うのですが・・・。 ちなみに以下の値では・・・ 754.44 = 0.473 × 1595 (754.435だから小数第3位で正しく四捨五入されています)。 やり方が悪いのでしょうか?それとも他に正しく計算できる方法があるのでしょうか?

専門家に質問してみよう