• ベストアンサー

エクセル2010数が合わない【若干ハイレベルかも】

(1)まずセルA1に【 1 】と数字を入れます。 (2)次にセルA2に【 0.5 】と数字を入れます。 (3)セルA3に【 =A2 】と数式を入力します。 (4)セルA4に【 =A3+$A$2 】と数式を入力します。 (5)セルA1~A4を小数点10~20桁くらいまで表示するようにします。 (6)セルA4をオートフィルで200行くらいまで下に表示させます。 これをすると1に0.5づつ加算されていくことになります。しかし、途中からなぜか3.69999999999999とか小数点以下の数字が変わってきます。 セルA3から下に正確に0.5づつ加算させるためにはどうしたらいいですか?

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

  • ベストアンサー
  • Saturn5
  • ベストアンサー率45% (2270/4952)
回答No.1

Excelは内部計算を2進数で処理しています。 整数は完全に2進数に変換できますが、少数を含む数字は2進数で 表すと無限小数になり、誤差が発生します。 これに対する方法は2つです。 (1)表示形式で適当な桁数で四捨五入する。 (2)値を10倍してから計算し、10で割る。 http://pc.nikkeibp.co.jp/pc21/special/gosa/

LucentHeart2
質問者

補足

ご回答ありがとうございます。参考になります。 この誤差が生じている値を条件付き書式に反映させたいのですが、一工夫必要になりそうですね。

関連するQ&A

  • Excel2007で数式のオートフィルの仕方について

    Excel2007で数式のオートフィルの仕方について ただの数字をセルA1に1、セルA2に3と入力し、A1とA2を範囲選択して、 下方向にオートフィルすると 1 3 5 7 9 となるのですが、 数式の場合、このような連続入力になりません。 例えば、 =B1 =B3 =B5 =B7 =B9 のようにするにはどうすればいいのでしょうか。 オートフィルはできないのでしょうか。

  • Excelのオートフィルについて教えてください

    Excelで、表の一番上に数式を入れて下の行にもオートフィルをしたとき、 結果がオートフィル型ではなく連続データのように表示されてしまうことがあります。 しかし数式バーを見てみると下に行くにつれて数字はちゃんと変わっていて(正しい数式が表示されていて)、 もう一度関数のボタン(fx)をクリックしてみると、ちゃんとした結果が得られます。 これはどういう現象なのでしょうか。 関数で参照するセルが結合されていることは関係しているのでしょうか。 詳しい方、ご存知の方いらっしゃいましたらお手数ですがご回答いただければ、と思います。 宜しくお願いいたします。

  • エクセルで合計値の整合性

    質問なんですが A1セルに6.1 A2セルに3.3が入力され 3行目の、A3セルはA1とA2の合計が入るようになっています そして各セルは「小数点表示桁下げ」をしているので見かけ上 A1セルは「 6 」、A2セルは「 3 」、A3セルは「 9 」と表示されています。 ここで問題なのが B1セルに6.5 B2セルに3.7と入力した場合 「小数点表示桁下げ」をしているのでそれぞれ「 7 」・「 4 」と表示され B3セルの合計値が 「 10 」となってしまいます。(「11」と表示させたい) このような場合、合計を求める3行目にはどのような関数を使用すれば 見かけ上の整合性が保たれるでしょうか

  • EXCELでの抽出について

    セルに数字を入力したものから、指定の数字を含むセルを抽出する方法を教えてください。 オートフィルのオプションで試してもうまくいきません。 例:123、234、345、456 の数字それぞれのセルで、うち下1けた3と5を抽出したい場合→123、345が抽出される また、よい関数があるのでしょうか。 教えてください。

  • エクセル 数式のコピーの仕方

     隣の数字と同じものが入力されるよう、エクセルに=(イコール)隣のセルという簡単な数式を入力しました。  それからそれをコピーしようして横にオートフィルの処理をしました。  しかし、数式が入力されず、数字の値しか表示されません。 なぜ、数式が入力されないかどうか わかる方いらっしゃいますでしょうか?

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

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • excelの計算の仕方

    大変初歩的な質問なのですが・・・ excelで計算式の入力で、まず、A1のセルにに=3*1.8と入力するとします。小数点以下を0桁にすると、四捨五入されて、5と表示されると思います。 次に、B1に=A1*2.3と入力し、小数点以下を1桁にすると12.4になると思います。 でも・・・ この計算だと、B1のセルは、5*2.3ではなくて5.4*2.3になりますよね? ここで、5*2.3にしたい時は、B1にどういう計算式を入れたら良いのでしょうか? または、A1の数字を四捨五入前の数字で計算するのではなく、表示されている数字を固定(?)する方法とかないでしょうか? 大変わかりにくい説明で申し訳ありませんが、理解できて良い方法が思い当たる方は、教えてください。 よろしくお願いします。

  • エクセルの入力規則で。

    セルに、-1と、0、と、6から10までの数字しか入力できないようにするにはどうしたらいいですか? 6から10までの数字は小数点以下も含みます。(6.13とか。) 数式を入力してください、と言われても、どうやって数式化するのかわからなくて・・・。

  • エクセルの合計値が一致しません

    A、B、C、D各シートの「J45」セル合計値を求めるべく、 合計 start A B C D end とシートを7つ並べて 合計のシートの「J45」セルに、 『=SUM(start:end!J45』と関数を入れています。 AのJ45セル値が14.53、Bは139.58、CとDはそれぞれ0なので合計が154.11となり、 合計シートのJ45セル値も145.11と表示されていますが、 ステータスバーには153.18と表示されているのです。 表示形式は「数値」の小数点以下2ケタを指定しています。 A~Dのシートには小数点2ケタの数字を直接数字を入力しており、 小数点以下3ケタより下が隠れている、なんてことはありません。 なぜセル内に表示されている数値と、ステータスバーに 表示されている数値にアンマッチが発生するのか、私には理解できません。 理由の分かる方、どなたか教えていただきますよう宜しくお願い致します。

  • お答えいただけましたら幸いです。

    ある列、或いは、ある行のセル内に存在する全ての数字を小数点第何(例えば、第二)位までの数字までしか表示しないようにする数式(関数)は何がありますか? 例えば、A列の1∼5のセルにそれぞれ、 A1「3.8659」A2「4.69785」A3「5.8754」 A4「6.87361」A5「7.13624」 とあるとすれば、 A1「3.86」A2「4.69」A3「5.87」 A4「6.87」A5「7.13」 のように、 すべての数字を一度に小数点第二位までの表示に統一する数式(関数)があれば知りたいです。 よろしくおねがいします。

専門家に質問してみよう