
少々面倒なのですが、どうしても解決できないのでお教えください。
A B C D
1:結果1 結果2 合計 順位
2:8 8 16 1
3:8.275 7.325 15.6 2
4:7.125 8.475 15.6 3←どうして?
5:6 6 12 4
Cの列は「=SUM(A2,B2)」のようにしています。
Dの列は「=RANK(C2,C$2:C$5,0)」のようにしています。
順位は1、2、2、4となって欲しいのですが、上のように1、2、3、4となってしまいます。
A3、B3、A4、B4の値を変えると1、2、2、4になるのですが、上の値だとどうしてもなりません。
面倒ですが、どうしても解決できないので、お教えください。
No.7ベストアンサー
- 回答日時:
セルC6 に「=SUM(C2:C5)」合計を入れてみます。
→ (59.2)
セルE3 に「=C3/$C$6」
→ (0.26351351351351400)
セルE4 に「=C4/$C$6」
→ (0.26351351351351300)
電卓で 計算すると、
15.6/59.2=0.26351351351351351351351351351351
小数点15位に誤差がありました。
---
同じ様に別の表計算でやってみました。
セルE3 に「=C3/$C$6」
→ (0.26351351351351300)
セルE4 に「=C4/$C$6」
→ (0.26351351351351300)
誤差がありませんでした。
しかし rank は、上と同じ 1 2 3 4 です。
これを、100倍してみました。
セルF3 に「=E3*100」
→ (26.351351351351400)
セルF4 に「=E4*100」
→ (26.351351351351300)
小数点13位に誤差が出ました。
皆様、ほんとうにありがとうございます。
ある大会での結果発表に影響が出てしまい、責任を感じていたのですがその原因が分からずがっくりきていました。
皆は私の集計ミスだと思っているでしょうが、まさか、Excelの計算そのものに誤差があるとは知りませんでした。
誤差が出るということを知らないという意味ではやはり私のミスか…。
それよりなにより、皆様の丁寧な回答と原因解明の洞察力に敬服します。
ありがとうございました。
No.6
- 回答日時:
こちらで大変分かりやすく説明されています。
(対処方法も)小数点以下を扱う場合には必見だとおもいますよ
http://pc.nikkeibp.co.jp/pc21/special/gosa/index …
No.5
- 回答日時:
こんにちは。
すみません、私の前回の#2の回答間違えました。
ワークシートの表には出てきませんが、誤差を確認しました。
>1:結果1 結果2 合計 順位
>2:8 8 16 1
>3:8.275 7.325 15.6 2
>4:7.1255 8.4745 15.6 2←【ここ】
>とどちらも2位となります。
>丸め誤差ゆえと考えればよろしいのでしょうか。
こちらは、同じ値で、15.6 です。
しかし、以下は、誤差が出ています。
>3:8.275 7.325 15.6 2
>4:7.125 8.475 15.6 3
こちらは、同じ15.6でも、等しくありません。「浮動小数点誤差」が発生しています。プログラムの中では、1.77635683940025E-15 の差があります。
No.4
- 回答日時:
多分エクセル特有の小数点以下の誤差のせいだと思います。
合計値を
=ROUNDDOWN(SUM(A3:B3),10)
というようにして、小数点以下10位までを有効数字とみたら解決できるのではないでしょうか?
No.3
- 回答日時:
#2 です。
>ただ、同順位が同じ値になるときとならないときがあるというのが分からないのですが・・・。
>たとえば、4:を
>4:7.1255 8.4745 15.6 22
それは、どういう意味ですか? Rank関数は、同位というのは存在しないはずです。
思ったとおりではない例を出していただかないと、ちょっと回答が出来ません。
それは、思ったとおりではない場合は、その計算過程の数値は、他のExcelも同様の解を返します。
それは、小数点が含まれるときは、その小数点以下の数字を違っている部分まで出してみないと、分かりません。同じ計算値だと思ったのが違うことがあります。全ての小数点を含む「演算(足し算・引き算・掛け算・割り算)」に、Excelでは、「揺らぎ」というものが存在します。(ただし、Excel97以上は、多少の補正はされています。かなり奇妙な丸めの補正のようで、根本的な解決は関数に頼るしかありません。)
#1さんのご指摘の内容です。私は、それを、「浮動小数点丸め誤差」と言っています。切捨て、四捨五入など、文字固定法というような、いくつかの措置方法があります。
この回答への補足
丁寧な説明ありがとうございます。
十分理解できていないのかもしれませんが、ヘルプの解説に
・・・・・・・・
RANK 関数では、重複した数値は同じ順位と見なされます。数値が重複していると、それ以降の数値の順位がずれていきます。たとえば、昇順に並べられた整数のリストがあり、そのリストに 10 が 2 度現れ、その順位が 5 であるとき、11 の順位は 7 となります (順位が 6 の数値はありません)。
・・・・・・・・
とあります。下のCの列はsumで計算しています。
A B C D
1:結果1 結果2 合計 順位
2:8 8 16 1
3:8.275 7.325 15.6 2
4:7.125 8.475 15.6 3←【ここ】
となるのに
4:を
4:7.1255 8.4745
とすると
1:結果1 結果2 合計 順位
2:8 8 16 1
3:8.275 7.325 15.6 2
4:7.1255 8.4745 15.6 2←【ここ】
とどちらも2位となります。
丸め誤差ゆえと考えればよろしいのでしょうか。
No.2
- 回答日時:
こんにちは。
良く出る質問ですね。同順位の時は、単に上から順位をつけるという考え方って、欧米流なんでしょうね。(^^;
いくつか方法があります。
例えば、こんな方法があります。どれも、あまり短くない式のようです。
=SUMPRODUCT(($C$2:$C$5>C2)*(MATCH($C$2:$C$5,$C$2:$C$5,0)=ROW($C$2:$C$5)-1))+1
($C$2:$C$5)-1 としているのは、もともと、1番目からなので、$A$1 としてよいのですが、紛らわしくなるので、こう書きました。
始まりが、C3からの時は、-2, C4からの時は、-3となり、必ず、行数が、1になるように書きます。
この回答への補足
ありがとうございます。
ただ、同順位が同じ値になるときとならないときがあるというのが分からないのですが・・・。
たとえば、4:を
4:7.1255 8.4745 15.6 22
とすると、ちゃんと22になるのです。
No.1
- 回答日時:
8.275とか7.475などの数値がありますが、これらの数値は「小数点4桁以降もあるものを表示形式で小数点以下3桁を表示する」にしていませんか?
有効桁数にあまり気を使わなくてもよいならC列の式は
=ROUNDDOWN(SUM(A2,B2),3)
で小数点以下4桁は切り捨てるとよいでしょう
この回答への補足
小数点以下10桁表示するとして、
8.2750000000 7.3250000000 15.6000000000
のようになっても同じなのですが。
他の数値にして合計が同じになるようにすると同順になるのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに写真が貼れない(フ...
-
Office2021のエクセルで米国株...
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
vba テキストボックスとリフト...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】【配列】3つのシー...
-
エクセルのライセンスが分かり...
-
【マクロ】元データと同じお客...
-
【関数】3つのセルの中で最新...
-
勤怠表について ABS、TEXT関数...
-
【マクロ】【画像あり】❶ブック...
-
【Officer360?Officer365?の...
-
セルにぴったし写真を挿入
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
エクセルシートの見出しの文字...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報