Excel入力規則と手入力の差の謎

このQ&Aのポイント
  • Excelの入力規則を使用したセルと手入力のセルの表示が異なる問題について解説します。
  • 入力規則を使用したセルではリストから選択した場合と手入力した場合で値が異なる現象が発生します。なぜこのような現象が起きるのか、その原因と対処方法について説明します。
  • リストから選択した場合と手入力した場合でセルの表示が異なる理由は、エクセルの内部的な数値表現の違いにあります。この問題を回避する方法として、数値の表示の設定を変更する方法や、計算に影響を与えないように工夫する方法などがあります。
回答を見る
  • ベストアンサー

Excel 入力規則と手入力の差の怪

入力規則を使用したセルがあります(型は「h:mm」です)。 次のような15分単位の時間のリストです(型は「h:mm」です)。 「18:00」「18:15」「18:30」 リスト以外の入力もできるように、エラーメッセージタブのチェックははずしてあります。 ここでリストより「18:15」と選択し、セルの型を「数値」に変更した場合、 セルの表示は「0.76041666666666800・・・・」となります。 別途同様のセルを使用し、リストからは選択せず「18:15」を直接手入力し、セルの型をセルの型を「数値」に変更した場合、 セルの表示は「0.76041666666666700・・・・」となります。 リストから選択した場合、手入力した場合で値が変わってしまうのはなぜでしょうか。 この後、別の式でこの値を利用したいのですが結果が変わってしまい困っています。 何か方法はないでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>入力規則を使用したセルがあります(型は「h:mm」です)。 >次のような15分単位の時間のリストです この入力規則の「元の値の一覧を作成したセル範囲」が別にあって,入力規則ではそのセル範囲を指定したと思います。 その元の値のセルで,同じように表示を変えて確認してみると,実は0.760416666666668で作成されていた事が確認できます。 その元の値一覧で現在「18:15」と表示されているそのセルに,改めて「18:15」と手で打ち込み直してみると,今度はちゃんと「0.760416666666667」で投入できる事が確認できます。 一般に時刻の値を「オートフィルドラッグで」つるつるっと引っ張って作成すると,ご相談のような状況がほぼ間違いなく発生します。 作成例: A2に 15:00 A3に 15:15 と記入し,A2:A3を選んで下向けにオートフィルドラッグする 作成例: B2に 15:00 を記入する B3に 15:15 を記入する B4に 15:30 を手で記入する B5に 15:45 を手で記入する  :  以下ひたすら手で時刻を記入する 作成例: C2に =TIME(15,15*ROW(A1)-15,0) を記入し,下向けにつるつるっとコピーする で,3列の数字を表示を変えて一致するしないを目視します。 =A2=B2 =B2=C2 =C2=A2 の3列の式をずらりコピーして,どれとどれが一致する(TRUEになる)か計算で確認させてもいいですね。

code-i2
質問者

お礼

詳細な解説をありがとうございます。

その他の回答 (1)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

んーと、15桁までしか計算できない 「 スプレッド方式 」 の表計算の宿命ですね。 本来は、0.7604166666666666666666666666666… とずっと6が続く無限小数になるのですが、 有限数として16桁目を四捨五入する関係で、0.76041666666666700 になってしまいます。 それを時間形式に直すことから、今度は2進数による 微少数誤差 が加わり、0.76041666666666800 になると考えられます。 実質問題はないと思いますが、大きな問題になるのでしたら面倒ですが、 「時」「分」「秒」それぞれの単位毎に計算をすることをお奨めします。

code-i2
質問者

お礼

ご回答ありがとうございます。参考にさせていただきます。

関連するQ&A

  • Excel の入力規則について教えてください。

    Excel2002 の入力規則で、ドロップダウンリストから選択した文字を変更したり、また、そのセルにリスト以外の文字を入力しようとすると「入力した値は正しくありません。」とメッセージがでてしまいます。 よく使用する名前だけをリストから選択し、それ以外は手入力したり、リストから選んだ名前の一部を変更したりすることはできないのでしょうか?教えてください。

  • エクセル2000の入力規則で困っています。

    エクセル2000のセルの入力規則で、条件の設定を 入力値の種類が「リスト」、 元の値が、カンマ区切りで  2,3,4,5  としております。 さらに、セルには書式設定で、表示形式が「ユーザー定義」で、0"年" にしてあります。 これで、セルを選択すると、ドロップダウンから 2~5 のいずれかしか選択できなくなり、セルには○年と正しく表示されますが、手入力で2~5の整数を入れようとすると「リストから選択してください」とはじかれてしまいます。 しかし、セルの表示形式が「ユーザー定義」でなければ、手入力でも2~5の整数値を問題なく入れることができます。 セルの書式は、あくまで見かけだけのことで、セルの中は同じ数値データのはずなのにどうしてこうなるのでしょうか? セルに○年を表示させながら、2~5の整数値の手入力を可能にする方法はないでしょうか?

  • エクセルの「入力規則」についてお尋ねします。

    エクセル2010です。 あるセルにデータの入力規則を設定します。 条件設定の入力値の種類を「リスト」にし、リストの値は、0,1,2,3と直接指定します。 これで設定したセルにはプルダウンで0,1,2,3を選択するか、直接0~3の数値の入力しかできなくなります。 ここまでは問題ないのですが、このセルにユーザー定義の書式、0"人"を設定して、1は1人と表示されるようにしました。そうすると、直接0~3の数値の入力ははじかれ、プルダウンで0,1,2,3を選択するしか入力ができなくなります。 リストに設定した値を正しく入力しているのに排除されるのはなぜでしょう? いろいろ試し、リストの値を、0,1,2,3と直接指定せず、セル範囲のリスト指定とし、そのセル範囲にもユーザー定義の書式、0"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • Excelの入力規則でリストの値を選択できません。

    Excelの入力規則でリストの値を選択できません。 環境:WinXP Excel2003 表内のセルに入力規則でリストを設定しました。 リストは場所指定ではなく、入力規則タブのリスト欄にカンマで区切って直接値を入力しています。 リストの内容はメールアドレス用のドメインです。 ("@docomo.ne.jp,@softbank.ne.jp"というふうにドメインをリストにしています) 表は下記のような作りになっています。 A1セル:アカウント 直接入力 A2セル:ドメイン ドロップダウンリストから選択 ドロップダウンリストは正常に表示されるのですが、値を選択してもセルには何も表示されません。 試しにリストの値を"a,b,c"に変更したら正常に選択・表示されました。 ※添付画像のような状態から値を選択してもセルには何も表示されません 値が選択できないのは何が原因でしょうか? ご教示宜しくお願い致します。

  • EXCELの入力規則に関して

    EXCEL 2003 で簡単な品物の管理表を作成しています。 例えば、品目としてパソコンがあり、品番としてAとBが有ったとします。 "パソコン"はセルにそのまま表示させ、品番は入力規則でAとBと書かれたセルを参照させ、ドロップダウンリストで選択するような作り方をしています。 このような場合での質問です。 1)入力規則で別シートのセルを参照先とすることはできますか。 2)参照先を作成せずに、ドロップダウンリストを作ることはできますか。(値一覧をセルやデータに内包するような感じです) 3)入力規則を複数のシートにコピーし、片方の値を変更した場合、別シートの同じ入力規則の値も連動して変更させることは出来ますか。 入力規則の機能では作りきれない部分も有るかとは思いますが、なにか良いアイデアがあればご提案いただくと有り難いです。

  • Excel 入力規則についての質問です。

    あるセルに「5と3と1」の数値以外を入力したら、エラーメッセージが表示される設定にしたいのですが、どのようにしたらよいのでしょうか? なお、「リスト」形式ではなく、手入力で行いたいと思っています。 アドバイス、よろしくお願いいたします。

  • エクセルの入力規則にかわるもの

    いつも大変お世話になっております。 エクセルの入力規則をよく作成し使用していますが、表示か8個までで8個以上は▼などで選択していますが、できれば、例えば、20行ある場合20行表示させたり、50行ある時は20行くらいずつ表示をさせたいです。 自分なりに調べたら、フォームコントロールやコンボボックスなどがでてきました。ですがイマイチやり方がわかりません。 やりたいことは、シート2に入力規則のリスト用に品名など名前を付けて、シート1のセルA3に、入力規則→リスト→名前、など登録してあります。シート1のセルA3で選択するときに、シート2で【名前】と登録したものがでます、シート1のセルA3を選択した際に名前がすべて出したいです。ほかには、【品名 1】と【品名 2】もシート1の決まったセルに半分くらいずつ表示させ選択したら選択したものが表示されたいです。 説明が上手くなくすみません。 フォームコントロールなどでできるようでしたら、ご教授お願い致します。

  • エクセル 入力規則の関数

    お世話になります。 エクセルの質問です。 A1のセルに、入力規則を設定し、H1~10のリストから選ぶように設定します。 そしてA1=H1をプルダウンで選択した際、 B2のセルには自動的に、 H1の隣の値(=I1)を入力するように設定するような関数はありますでしょうか? 大変分かりにくい質問で申し訳ありません。 どうぞ宜しくお願い致します。

  • エクセルの『入力規則』について

    先日gyaku_beltさんの質問(NO.#47850)にsawawaさんが答えられていた補足説明についてです。 http://www.okweb.ne.jp/kotaeru.php3?q=47850 http://oshiete1.goo.ne.jp/kotaeru.php3?q=47850 http://www.okweb.ne.jp/iwedding/kotaeru.php3?q_id=47850 『選択肢にないものをキーボードから入力したい場合、 設定画面の”入力時メッセージ”タブの中の ”セルの選択時にメッセージを表示する”のチェックを はずしておいてください。デフォルトではチェックがついていて、リストにないものは入力できなくなってしまいますので』とありました。 そのようにやったのですが、リストに無いものをキー入力すると『入力した値は正しくありません。ユーザーの設定によって、セルに入力できる値が制限されています』のエラーになります。何回もトライしましたので操作は誤っていないと思うのですが・・・。 エクセルはExcel97 SR-2です。

  • Excel、入力規則のリストについて

    現在、A1とA2のセル(仮)に入力規則を設定し、それぞれ名前定義した範囲をリストとして表示するようにしています。 ※ただしくは、A1とA2は連動しており、A1で選択された値によってA2に表示されるようになっています。 A1の値を切り替えると、A2のリスト項目は問題なく切り替わるのですが、 A2のリストから選択して値を選択してあげるまで、A2は以前の値が保持されたままになります。 A1の値を切り替えると同時に、A2にA2のリスト項目の一番先頭のものを表示させることは出来ませんでしょうか。 お願いします。