この質問の続きです。
https://oshiete.goo.ne.jp/qa/10989188.html
上記Q&Aで解決方法は分かったので一旦クローズしました。
ある式で再現する方法を見つけたので、原因を判明したく、新規で質問させていただきます。
以下の手順で、正常にソートされません。
■手順1(まずデータを作る)
A1セルにこの式を入力します。
=10/3 + 10/3 + 10/3 + 9/3
A2セルにこの式を入力します。
=10/3 + 9/3 + 10/3 + 10/3
B1に数字の1を入力
B2に数字の2を入力
以下のように表示されます。
A列 B列
---------------
[13] [1]
[13] [2]
■手順2(ソートする)
以下でソートします。
並べ替え
A列、値、降順
次に優先されるキー
B列、値、昇順
ソートすると、このように並び変わってしまいます。
B列の昇順が反映されていません。何が原因でしょうか?
A列 B列
---------------
[13] [2]
[13] [1]
No.1ベストアンサー
- 回答日時:
これは追及しだすとキリが有りません。
先ずエクセルは計算機処理なので、内部は全て2進数で現しています。
一方で目で見える表示は10進数表示で、かつ、有効桁数15桁表示です。
2進表現⇒10進表示の時、10進表示の16桁目からは0を表示します。
10/3 + 10/3 + 10/3 + 9/3 ①
と
10/3 + 9/3 + 10/3 + 10/3 ②
の場合、内部2進表現では精度の問題で②の方が極く僅かに大きいのです。
それを有効桁数15桁表示した場合には、違いを表現できないのです。
つまり、15桁目より小さい桁で差が出る、と言う事です。
これが、例えば有効桁数50桁表示くらいだとしたら、差が目で見て解る筈なんです。
回答ありがとうございます。
自分も大昔ですが、浮動小数点や2進数の計算を勉強していた時期がありました。
もう殆ど忘れてしまいましたが、回答者様の話は分かります。
それで、浮動小数点とエクセルで検索し、以下方法を試したところ、正確にソートできるようになりました。
ヒントをありがとうございます。
Excel で浮動小数点演算の結果が正しくない場合がある
https://support.microsoft.com/ja-jp/help/78113/f …
方法 2: 表示桁数で計算
場合によっては、[表示桁数で計算する] オプションを使用して、丸め誤差による影響を回避できる場合があります。このオプションを使用すると、ワークシートの各数値が、表示されている値に強制的に変更されます。このオプションを有効にするには、次の手順を実行します。
Excel 2003 以前のバージョンでは、[ツール] メニューの [オプション] をクリックします。
[計算方法] タブの [表示桁数で計算する] チェック ボックスをオンにします。
Excel 2007 では、Microsoft Office ボタンをクリックし、[Excel のオプション]、[詳細設定] を順にクリックします。
[次のブックを計算するとき] セクションで目的のブックを選択し、[表示桁数で計算する] チェック ボックスをオンにします。
Excel 2013 および 2010 では、[ファイル]、[オプション]、[詳細設定] カテゴリを順にクリックします。
[次のブックを計算するとき] セクションで目的のブックを選択し、[表示桁数で計算する] チェック ボックスをオンにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
- Java Java配列の問題を教えてください。 乱数で20個出力し、最大、最小、合計、平均を求め、更に昇順にソ 3 2023/07/10 18:32
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
エクセルで同じ名前ごとの合計...
-
エクセル 指定した文字列を含...
-
エクセルで列内の同じIDの商品...
-
エクセルで2列を検索し2列とも...
-
Excelで自動的に並べ替えなんて...
-
エクセル マクロで列を連続し...
-
エクセル 並び替え
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
エクセル
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
塗りつぶしの色をコピーするには
-
Excelで行ごとコピー、同じ行を...
-
Excelの関数について、特定の文...
-
数字がセルの左側に寄っていて...
-
エクセルグラフの一括設定。
-
PDFの一部を切り取って別のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
桁数が混在する並び替えの方法
-
エクセルで一部除外した数字を...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルで列内の同じIDの商品...
-
エクセルで2列を検索し2列とも...
-
EXCEL 指定した曜日に番号を振...
-
エクセル マクロで列を連続し...
-
EXCELである列を上から順にチェ...
-
Excelで自動的に並べ替えなんて...
-
エクセルvba 一つ上の行を指定...
-
エクセル VLOOKUPが反映されない
-
エクセルマクロでA欄に値があ...
-
(続き)Excel2013で正しくソート...
-
ExcelVBA:列方向の並び替え O...
-
エクセルのマクロ教えてください。
-
エクセル 並び替え
おすすめ情報
すみません、環境を書いてませんでした。
■環境
MS-Office Standard 2013
Windows7
また、かなり古いExcel2002でも同様の動作になることを確認しました。