• ベストアンサー

EXCELの「1904年から計算する」をチェックするのとしないのとで、

EXCELの「1904年から計算する」をチェックするのとしないのとで、どう違うのでしょうか?通常チェックを外しておくと1900年から計算され、時間の計算を行う際、マイナス表示はされませんが、チェックするとマイナス表示もできるようになります。チェックをした際の他の部分への悪影響があるかどうか教えてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

>もともとブックを開いたときに1904年から計算するをチェックしたあとに日付を入力すれば、変わることはないわけですよね? 1904年モードに問題はないかということですね。Mac版Excelのブックを、Win版Excelに入れれば、自動的に、「1904年から計算する」モードにチェックが入っているはずです。だから、操作自体は必要ないはずです。1904年モードにしても、1900年モードにしても、その以降で問題が発生するとすれば、以下のように誤使用の問題だけです。だだし、1900年モードの1900年1月・2月の曜日は違っていますから、1日の補正が必要になります。 1~2の場合は、1900年モードでも、1904年モードでも、食い違いが出るわけではありません。 既に、この件は前の#3さんが触れられていますが、例を示しますと、 (1) =TEXT("2010/4/30","aaa") ... 金 (2) =WEEKDAY("2010/4/30") ...7 -- 1904年モードで、以下は問題が発生してしまいます。 × (3) =TEXT(WEEKDAY("2010/4/30"),"aaa") ..木 × (4) =WEEKDAY("2010/4/30") [書式: aaa] ...木 本来、(3),(4)は、WEEKDAY関数の引数に、曜日の数値とシリアル値の代入を取り違えたから、起きる問題です。このような間違いをしなければ、問題が発生するわけではありません。 1904年モードには1900年モードに対して、1462日の余分がありますから、マイナス表示は可能ですが、Win版では、1900年モードを、Mac版では1904年モードで、デフォルト状態にして使用したほうが他者との共有が出来てよいのではないかと思います。 補足なのですが、 「『1904年』に何があったのか?(第17回):田中亨『Excelの謎』(すでに#4さんが触れていますが) http://pc.nikkeibp.co.jp/article/NPC/20070626/275901/?P=2 --   後発のウィンドウズ版エクセルには、シリアル値を1900年から   始めなければならない理由があった。それは、MS-DOS版で圧倒   的シュアを誇っていた表計算ソフト「ロータス1-2-3」の存在だ。   エクセルが1-2-3に追い付き、追い越すためには、1-2-3で作成   したデータを忠実に再現できるという“互換性”が必要だった。   ところが、その1-2-3のシリアル値が、何と1900年から開始され   ていたのだ -- この記事の内容について、「互換性」ということは間違いありませんが、Microsoft 側が、「エクセルが1-2-3に追い付き、追い越すためには」というのは語弊があります。 Microsoft側は、1987年に、Windows と共に、Excelを発表したわけで、OSが違いますから、競合していたと思うのは間違いです。新しいOS上で動く表計算として、Lotus1-2-3の完全互換をカバーしようとしたのですが、本格的には、OSと表計算Excel (Ver.3)の完全移行は1992年ですから、Lotus123の並列していた時期というものは、ほとんどないはずです。日付・時間関数に関して、1900年問題は、Excel側の開発者は知っていたようです。以下に、その内容が触れられています。 "My First BillG Review - JoelOn Software" http://www.joelonsoftware.com/items/2006/06/16.html Excelの開発者チームのEd Fries(エド・フリース)氏とJoel Spolsky(ジョエル・スポルスキー)氏の会話があります。 内容をまとめると、Lotus1-2-3の互換性を保つために、1900年の閏年でないことを無視して、閏年にしたのは、互換性のためです。Lotus1-2-3自体が、バグであったかというと、そうでもないというのです。Lotus1-2-3自体は、PCが、640K時代に開発されたもので、メモリ制限によって1900年を無視し、右側の2ビットがゼロかどうかをみるだけで簡単に済みました。それに、そんな昔の1900年の2ヶ月の問題を重視していなかったのです。それを、Excel側は、互換性を保つために、踏襲したわけです。現在、Lotus1-2-3と互換性を取る必要があるとは思えませんし、それを続けていること自体に、問題がないとは言えませんが、そういうことだったわけです。

sienta2674
質問者

お礼

ありがとうございました。よくわかりました!

その他の回答 (4)

  • TammyG3
  • ベストアンサー率30% (34/111)
回答No.4

Windows だけでしたら、 また、100年も前のことは、 あまり使わないでしょう。 明治以降の年表作成のときは、 1900年より前は、オートフィルを使いました。 質問には直接、関係ありませんが、 ロータスが1900年の閏年を間違えたので、 MSがマックのために作ったエクセルでは、 1904年の閏年から始めたのだろうか? Windows のエクセルは、 ロータス123 のシェアを奪うため、 あえて、間違ったままにした、 と聞いています。

sienta2674
質問者

お礼

ロータスのことまで関わってくるとは・・・最近パソコンを使う方はロータス123知らない人も多そうですね。

回答No.3

1904年1月1日基準は元々のMacintosh版の仕様、1900年1月0日基準 はWindowsに移植したときの仕様変更です。MSは1900年が閏年では ないことを知らなかったらしく、1月と2月の曜日が間違っています ので注意が必要です。時刻のマイナス表示が出来なくなったのとあ わせて、余計なことをして恥をさらす実例ってわけですね。 その曜日のバグに関連して、weekday関数の返り値と日付シリアル 値を混同したデタラメな処理が結構広く流布されています。特定の 日付の曜日を表示するのに、日付シリアル値に対して書式でaaaと するだけでいいのに=weekday(日付)として書式でaaaとするんだと 解説してるんですね。このカテゴリでも何度も見かけました。1904 年基準のブックでこの間違った解説に従うと、当然間違った曜日が 表示されます。これは悪影響かなぁ。

sienta2674
質問者

お礼

そんなことがあったのですね。

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

ん~~~~~と。。。? ごめんなさい? >もともとブックを開いたときに1904年から計算するをチェックしたあとに日付を入力すれば、変わることはないわけですよね? そのようにお話ししたつもりでしたが,一体何が疑問なのでしょうか。 再掲: >ある年月日をセルに記入して…チェックを『入れたり外したりすると』,日付が4年と1日変わってしまいます。 再掲: >チェックを入れたブックと入れていない『ブック…間で日付のセルをコピー貼り付ける』と日付が4年と1日変わってしまいます。 一度チェックを入れたら以後絶対にチェックを触らないとか,あるいはチェック状態が不明のブックにデータを移動コピーを絶対にしなければ,そりゃまぁ勝手に数字が変わってしまうようなことはありません。 あぁ,あとブック間のコピー貼り付けの類型として,チェックの入ったブックと入っていないブック間で,数式によって日付の記入されたセルの値を参照した場合にも同じ現象が起こります。 二度も三度も同じご説明をするのも芸が無いというか気が引けますので,スミマセン,もうちょっと具体的に何をお知りになりたいのか詳しくお話しください。

sienta2674
質問者

お礼

ありがとうございました。確認の意味だったので、特に深い意味はありませんでした・・・

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

ある年月日(たとえば今日の日付,2010/4/27)をセルに記入しておいて当該のチェックを入れたり外したりすると,日付が4年と1日変わってしまいます。 1904年基準は(エクセル本体ではなく)「ブックごとの」設定になります。 そのチェックを入れたブックと入れていないブックにそれぞれ日付が年/月/日で記入されていたとき,その2つのブック間で日付のセルをコピー貼り付けると日付が4年と1日変わってしまいます。 Macintosh版Excelは1904年基準がデフォルトでチェックされているため,Mac/Win間で日付を記入したブックをやりとりしていると,同じ状況が標準的に発生します。

sienta2674
質問者

お礼

ご回答ありがとうございます。 もともとブックを開いたときに1904年から計算するをチェックしたあとに日付を入力すれば、変わることはないわけですよね?

関連するQ&A

専門家に質問してみよう