プロが教えるわが家の防犯対策術!

売上の構成率の計算で、たとえば30項目ありそれぞれ小数点第3位を四捨五入して小数点第2位まで表示します。
しかし、四捨五入してますから、単純に合計しても100%になりません。100.02%とかになります。合計が丁度100.00%にする方法はありますか?

質問者からの補足コメント

  • エクセルシートでの作業となります!

      補足日時:2018/02/24 21:50
  • 説明が悪くて、すみません。小数点以下第3位以下の内計算は考えず、四捨五入後の小数点以下第2位を合計して100.00%になる方法です。

      補足日時:2018/02/25 11:59
  • 回答ありがとうございます。表示のまま合計して100.00%にしたかったのですが、やはり手動で修正するしか方法ないのでしょうか?仮に項目が100個あったら修正が大変ですね。

      補足日時:2018/02/25 17:26
  • やはり手動になるのですね。それでは項目が100個あって合計が100.01%であった場合、修正する項目を、どのようにして見つけたら良いでしょうか?適当には出来ない場合、小数点以下第3位以下の値が一番小さな項目となると思いますが?

      補足日時:2018/02/26 00:13

A 回答 (5件)

>やはり手動になるのですね。

それでは項目が100個あって合計が100.01%であった場合、修正する項目を、どのようにして見つけたら良いでしょうか?
>適当には出来ない場合、小数点以下第3位以下の値が一番小さな項目となると思いますが?
マクロでなら可能かと思います。

合計が100.02%の場合は、修正する箇所は2か所になるかと思います。(その2か所から各々0.01%を減算すると100.00%になる)
どのようにして見つけるかですが、
100.02%の場合は、小数点3位以下が切り上げられて0.01%が増加されたと考えられます。
従って、四捨五入による切り上げをおこなった箇所を切り上げを行わないようにする箇所の候補の箇所は、小数点3位以下が最も5に近いものになります。つまり
0.xxxx500000000・・・~
0.xxxx999999999・・・
の範囲の中で。もっとも小さいもの(小数点4位以降のみで比較し、50000000・・・に近いもの)が候補になります。この候補を2つ選びます。

同様に99.97%の場合は、修正する箇所は3箇所になります。(3箇所に0.01%を各々加算する)
0.xxxx00000000・・・~
0.xxxx49999999・・・
の範囲の中で。もっとも大きいもの(小数点4位以降のみで比較し、49999999・・・に近いもの)が候補になります。この候補を3つ選びます。
以上が、修正個所を見つける方法です。

念のため確認になりますが、商品が3個の場合
商品名 売り上げ 構成比
AAA 1    33.33%
BBB 1    33.33%
CCC 1    33.33%
合計  3    99.99%
のようになります。
この場合、商品AAAの構成比は33.34%に修正されます。(他の商品は修正されない)
そうすると、売り上げが同じ金額でありながら、構成比が異なることが発生しますが、これは問題ないのでしょうか。
    • good
    • 0

> 修正する項目を、どのようにして見つけたら良いでしょうか?


愚輩に言わせていただければ言葉が悪いですが"捏造"に変わりはないのでどこでも好きな所を直してください。

何か勘違いしておられませんか?
#2に添付の画面では構成率の%値はexcelが自動計算したものです。自動的に少数第3位が四捨五入されています。そのため表示されている少数第2位までの%値を全部足しても100.00%にはなっていません。
合計値のセルにある100.00%はexcelが自動計算したものです。すなわち、
 20387÷90723= 22.4716995690178 %
  4459÷90723= 4.9149609250135 %
 65877÷90723= 72.6133395059687 %  と自動計算され、
合計のセルには=の右の15桁を足し算した結果の100.00%が表示されています。
(この15桁の数は実際にexcelの内部値を読み出したものです)
一般的にはexcelはこのように使うのですが、これでは不都合なのでしょうか?
    • good
    • 0

> 表示のまま合計して100.00%にしたかったのですが、やはり手動で修正するしか方法ないのでしょうか?仮に項目が100個あったら修正が大変ですね。



前回の例では表示値は 22.47%、4.91%、72.61% ですからそのまま足したのでは 99.99% となって100.00%にはなりません。少なくとも1個所の数値を強制的に修正せねばどうにもなりません。
データ数が100個でも1000個でも修正は1個所でOKです。上記の例では合計値が99.99%ですからどこかの値を0.01%増せばよいのです。例えば4.91%を4.92%に修正すれば合計値は100.00%になります。
逆に100.02%のように100.00%を超えているのならどこかの値を0.02%小さくすれば良いのです。

割合を求める計算をするとどうしても四捨五入によるごくわずかな誤差が生じます。それを手動で強制的に修正することは好ましいこととは言えないでしょう。露見すると問題になるかもしれませんね。これが原因の誤差であれば残っている方が信頼できます。
    • good
    • 0

ご要望の意味がいまいちわからないのですが、添付図のようなものではダメなのですか?


この例では構成率は少数以下第3桁を四捨五入したものが表示されています。構成率の合計(C5セル)はその上の3つのセルをΣ機能で合計したものです。
表示されている数値を合計すると 22.47%+4.91%+72.61%=99.99% となって100%になりませんがexcelの内部計算は非常に細かい所までやっているのでΣで自動計算させると100.00%になります。
もし表示値のままを合計して100.00%にしたいのなら無理ですね。どこかの値を手動で修正でもしない限り無理でしょう。例えば 4.91%を4.92%に変更するとか。

一応添付図の説明をしておくと、
売上合計(B5セル)はその上の3つのセルを Σ(オートサム)で合計したもの。C5セルも同様にΣで合計。
構成率は 売上額を合計額で割算。つまり C2=B2÷B5 です。
C列は表示形式を「パーセンテージ」に、少数点以下の桁数を2に設定しています。
Σ(オートサム)は使っていますがその他特殊な設定や関数は一切使っていません。


> 小数点以下第3位以下の内計算は考えず
excelは内部では少数以下20桁ぐらい計算しています(正確には何桁か知りません)。
小数点以下第3位以下を計算させないようにするには不要部分を切り捨ててしまえば良いのですが(切り上げ、切り捨て、四捨五入関数を使う)、内部数値自体が22.47%とか4.91%になるので足しても100%にはならないことに変わりはありません。

添付の例のように表示合計は100.00%にならなくてもexcel内部の数値や計算は非常に細かい所までやっているので正確です。
つまり難しいことを考えず表示形式を設定するだけであとはexcelに任せておくのがベストと思うのですが、いかがでしょうか?
「売上の構成率の計算で、たとえば30項目あ」の回答画像2
    • good
    • 0

EXCELならセルの表示形式の指定だけでうまくいくはずです。


セルの表示形式を「パーセンテージ」に指定し「少数点以下の桁数」を2にしておけば「13.65%」とか「10.00%」のような表示になります。%の文字は自動的に付加されます。
この場合小数点第3位が四捨五入されます。例えば 2÷3 の結果は 66.67% と表示されます。
内部計算は何桁もやっているので%の合計結果はピッタリ「100.00%」になるはずです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!