No.4ベストアンサー
- 回答日時:
こんにちは。
>下にコピーしたら、表示上は、問題なかったのですが
ドラッグダウン・コピーの仕組みというのは、
6.1 - 6.0 =0.1 の差を取って、その差を、次の出てくる数に足しているわけなのです。小数点を含む計算の中で、『引き算』と『割り算』は、「浮動小数点丸め誤差」といって、正しい計算が出てこないことがあります。
典型的な例では、時間計算が該当します。
ですから、比較演算子を使った、< , >, = などは、違った結果になってしまいます。
原則:
小数点を含む、引き算や割り算は、丸め誤差が発生することがあります。
関数のMOD,CEILING,FLOOR に、見かけ上は、引き算はなくても、小数点を用いると誤差が発生することがあります。
逆に、「計算上で、引き算や割り算の仕組みを作らない限りは、発生しません。」
数値は上から15桁までが有効であり、16桁目以降は不正確です。つまり、無限小数の発生する場合は、数値で、正確に表現することは不可能です。
(時間)-(時間) は、原則的に丸め誤差が発生します。
対処法:
文字列から数字を取る方法(小数点固定法)
VALUE(FIXED($A$2-$A$1,1))
整数にして計算する方法(整数変換法)
($A$2*10-$A$1*10)/10
通常は、整数にするか、一旦、文字列にします。ワークシートでは、ROUNDUP やROUNDを使う人がいますが、気をつけて使わないと、違う結果になることがあります。使う場合は、よく調べてみる必要があります。また、よく誤解している方がいますが、定数には、浮動小数点誤差は存在しません。演算して始めて誤差が出ます。
#2さんで解答は既出ですが、
A2~
=$A$1+ROW(A1)*0.1
(定数が必要な場合は、範囲を選択して、右クリック-形式を選択して貼り付け-値をクリック)
このような式で作ってみて、ドラッグダウン・コピーしてみてください。それを、前回のドラッグダウン・コピーでつくったものと比較してみてください。A16 以降はずれているはずです。
なお、これは、日経PC21のその「表計算の丸め誤差」を発表した方はご存知なかったようですが、これは、既に、MS-DOSの時代に、1980年代後半に、ロータス社、マイクロソフト社、両社で、その発表をしたもので、関係者では周知のことです。しかし、それでもなお、MS-DOSの表計算のほうが、この誤差の発生することが少なかったのです。特に、金利や為替を扱う経理関係者の中で対処が促されたことですが、関係者にとっては、ある意味致命的な問題です。
#3のimogasiさんのおっしゃるように、私も、ことさら気にする必要はない、と思っていますが、対処法を把握していれば、十分だと思います。
日経PC21の記事の内容はセンセーショナルな割には、針小棒大になってしまい、逆にうやむやになって理解しにくくなった気がします。
No.5
- 回答日時:
どうしてそうなるのか難しいことは分かりませんが、6.0と入力したらセルの右下にカーソルを合わせて(+の形になります。
)右クリックしたまま下にドラッグします。出てきたメニューから、連続データをクリックします。
出てきた画面で加算・増分値を0.1にしてやると仰るような現象にはならないようです。
No.3
- 回答日時:
理解するには、相当な前提となる知識が要りますよ。
http://pc21.nikkeibp.co.jp/special/gosa/eg1.shtml
をじっくり読んでください。
エクセルでも他でも小数点つきの数(実数)ではそのようになります。
浮動小数点演算を使っているからです。
上記WEBページのうち直接の関連箇所は
http://pc21.nikkeibp.co.jp/special/gosa/eg4.shtml
>これを防ぐにはどう入力すればよいでしょうか
上記WEBページに解説してあることを理解することです。
余程、学が進むまでは「気にするな」ということになるでしょうか。
その他
http://oku.edu.mie-u.ac.jp/~okumura/software/exc …
http://www.kentei.ne.jp/quali/column/knowhow/030 …
No.2
- 回答日時:
A1を6.0(表示形式の数値で小数点以下の桁数は1)とすると、A2に
=A$1+(ROW(A2)-1)/10
と入力し、下にフィルハンドルでコピーするとそのような数値表示は出ません。
もちろんそのままカーソルを合わせても計算式だけしか表示されないので、A列をB列にコピー→値のみペーストし、表示形式を少数点を10桁ぐらいにして試してみて下さい。.9999999は出ないと思います。
同じような式でもA2に
=A1+0.1
としたときは、フィルハンドルコピーした場合、7.5ぐらいで「7.49999999」のようになりますね。
単純に6.1:6.2を選択して下にフィルハンドルコピーしたときもそのようになります。私では理由は分からないので、他の方の回答に期待ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの複写について 4 2022/04/10 01:02
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) エクセルの条件付き書式 4 2023/04/17 11:05
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) エクセルに代わる 表入力ツールについて 3 2022/12/21 21:19
- Excel(エクセル) エクセルでセルに数式を入力した状態で、数式バーをクリックすると添付資料のように 「数式に関連するセル 2 2022/11/25 19:36
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報