MicrosoftはExcelの1900年方式と1904年方式をスマートに統合するつもりはないのでしょうか?640KBのMS-DOSの時代ならいざ知らず、現在のCPUパワーを持ってすれば何らかの解決方法があると思うのですが。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/05/08 12:13:28
  • 終了:2015/05/09 13:25:45
id:infinitete

すみません、日付の計算方法の事です。

ベストアンサー

id:tea_cup No.2

tea_cup回答回数1047ベストアンサー獲得回数1902015/05/09 04:20:10

プログラマが積み重ねた工夫の歴史なので、変更されることは無いでしょう。
(桁が足らなくなりそうになったら、今ならバイト長を伸ばせばすむので)
以下に肝を引用しますが、ぜひリンク先を読んでください。
はじめてのBillGレビューのこと - The Joel on Software Translation Project

1900年はうるう年ではない。

「これはExcelのバグだ!」 私は興奮した。

「実際はそういうわけじゃない」とエドが言った。「Lotus 123のワークシートをインポートできるようにするために、そうする必要があったんだ」

「じゃあ、Lotus 123のバグってこと?」

「そう。だけどおそらくは意図的なものだ。Lotusは640Kのメモリに詰め込む必要があった。これはあんまり大きなものじゃない。1900年を無視すれば、与えられた年がうるう年かどうか判定するのは右端の2ビットが0かどうか見るだけで済む。そのほうがずっと早くて簡単だ。たぶんLotusの連中ははるか昔のふた月が間違っていたところで問題にはならないと考えたんだろう。一方でBasicの連中は、そのふた月にこだわってエポックを1日ずらしたんだ」

「あーっ!」私は声を漏らした。そして「1904年から計算する」というチェックボックスがオプションダイアログについている理由を知ったのだ。

最後に、とっておきの質問がきた。

「分からないんだが」ビルは言った。「これをどうやって実現するのか本当に詳細に調べた者が誰かいるのか? たとえば、日付と時刻に関するあのたくさんの関数だ。Excelには日付と時刻の関数がすごくたくさんある。Basicが同じ関数を持つようになるのか? それが全部同じように動くようになるのか?」

「なります」と私は答えた。「1900年の1月と2月以外は」

他1件のコメントを見る
id:tea_cup

windows側で、「[1904 年から計算する] チェック ボックスをオン」して、「変更された日付の修正」をしまくるしかないのでしょうね。
https://support.microsoft.com/ja-jp/kb/214330/ja

いまどきなので、office 365 を導入されては?
https://www.microsoft.com/ja-jp/smb/business-news/The-effect-of-the-street-until-now-in-the-use-of-the-street-until-now/

tea_cupは、マイクロソフトさんの回し者じゃないので、詳細は、代理店へ。

2015/05/09 11:56:39
id:infinitete

おっしゃるように、MSのサポートの解決策が“「変更された日付の修正」をしまくる”だったので疑問に思ったわけです。
そうですね、最新の製品がどういう対応をしているのか確認してみます。

2015/05/09 13:25:07

その他の回答(1件)

id:jwrekitan No.1

椶櫚回答回数229ベストアンサー獲得回数842015/05/08 21:39:46

もし仮に統合するとなると、ユーザー数の少ないMac側の1904年方式(後方互換)を切り捨てたうえで、新バージョンでは1904年方式のデータを読み込んだ際にデータコンバートし、保存は強制的に1900年方式に、という事になろうかと思います。1904年方式しか扱えない古いプログラムでは、新バージョンの吐き出したデータが使えなくなりますので、パッチを配布するような形になるのかな?。するとパッチの存在を知らないユーザーからの問い合わせが殺到するでしょうから、リアル世界においての短期集中的な混乱が起こるであろう事が十分予測できます。逆に1900年方式を切り捨てる場合には、その混乱規模はさらに数十倍ほどに膨れ上がるであろうと見込まなければなりません。

パッチはプログラムのバージョンごとに作成する必要がありますし、パッチに不具合があってデータコンバートに失敗でもしようものなら大問題になりますので、けっこう大掛かりなプロジェクトになると思います。もちろん、パッチの作成期間×投入するエンジニアの人数、分のコストもかかります。修正パッチですから収入は0です。

問題があるとすれば、むしろそういったデータ統一に伴うパッチ開発コスト、過去のデータ資産の扱い、現状に不満を感じているわけではない大多数のMacユーザーからの反感を買うことになる事等々であって、ユーザーPCのスペックがどうこうという問題ではないと思いますよ。

id:infinitete

ご回答ありがとうございます。まさに今起こっている問題はWindowsとMacのOS間のデータ互換で、日付データの入ったファイルをOS間でやりとりする全てのユーザーに降りかかる問題です。
現状に不満を感じているわけではない(問題の存在に気づいていない)大多数のExcelユーザーがクラウドなどを通じてファイルをやりとりするときに起こる不具合を想定しています。

過去に遡ってパッチを配布しろとまでは言うつもりはありません。昔のExcelで.xlsxファイルを開けられるようにしろと言わないのと同じです。過去データに不備があることを織り込んだうえで新しいバージョンのアプリケーションを作り、互換性を優先したデフォルト設定にできないかと思ってるわけです。
webブラウザが文字コードを自動判定するようなイメージです。

日本人はかつて文書データをやりとりするケースを例外的であると想定して、ワープロ専用機やフロントエンドプロセッサに外字作成機能を実装したために、印刷所から文字化けした校正が上がって来るという事態を経験しています。
今後更にデータ交換・共有の傾向は高まると思い、何らかの大きなトラブルが発生しないか危惧しているわけです。
2000年問題のように大渦がなければいいのですが。

2015/05/09 09:27:00
id:infinitete

確かにパッチを当てて、テキストエディタが文字コードを記述するようにExcelがそのファイルをどちらの方式で作成したかのフラグを立てるなりマーカーを埋め込んで置いてくれたら判定は簡単でしょうね。

2015/05/09 09:38:15
id:tea_cup No.2

tea_cup回答回数1047ベストアンサー獲得回数1902015/05/09 04:20:10ここでベストアンサー

プログラマが積み重ねた工夫の歴史なので、変更されることは無いでしょう。
(桁が足らなくなりそうになったら、今ならバイト長を伸ばせばすむので)
以下に肝を引用しますが、ぜひリンク先を読んでください。
はじめてのBillGレビューのこと - The Joel on Software Translation Project

1900年はうるう年ではない。

「これはExcelのバグだ!」 私は興奮した。

「実際はそういうわけじゃない」とエドが言った。「Lotus 123のワークシートをインポートできるようにするために、そうする必要があったんだ」

「じゃあ、Lotus 123のバグってこと?」

「そう。だけどおそらくは意図的なものだ。Lotusは640Kのメモリに詰め込む必要があった。これはあんまり大きなものじゃない。1900年を無視すれば、与えられた年がうるう年かどうか判定するのは右端の2ビットが0かどうか見るだけで済む。そのほうがずっと早くて簡単だ。たぶんLotusの連中ははるか昔のふた月が間違っていたところで問題にはならないと考えたんだろう。一方でBasicの連中は、そのふた月にこだわってエポックを1日ずらしたんだ」

「あーっ!」私は声を漏らした。そして「1904年から計算する」というチェックボックスがオプションダイアログについている理由を知ったのだ。

最後に、とっておきの質問がきた。

「分からないんだが」ビルは言った。「これをどうやって実現するのか本当に詳細に調べた者が誰かいるのか? たとえば、日付と時刻に関するあのたくさんの関数だ。Excelには日付と時刻の関数がすごくたくさんある。Basicが同じ関数を持つようになるのか? それが全部同じように動くようになるのか?」

「なります」と私は答えた。「1900年の1月と2月以外は」

他1件のコメントを見る
id:tea_cup

windows側で、「[1904 年から計算する] チェック ボックスをオン」して、「変更された日付の修正」をしまくるしかないのでしょうね。
https://support.microsoft.com/ja-jp/kb/214330/ja

いまどきなので、office 365 を導入されては?
https://www.microsoft.com/ja-jp/smb/business-news/The-effect-of-the-street-until-now-in-the-use-of-the-street-until-now/

tea_cupは、マイクロソフトさんの回し者じゃないので、詳細は、代理店へ。

2015/05/09 11:56:39
id:infinitete

おっしゃるように、MSのサポートの解決策が“「変更された日付の修正」をしまくる”だったので疑問に思ったわけです。
そうですね、最新の製品がどういう対応をしているのか確認してみます。

2015/05/09 13:25:07
  • id:sibazyun
    2000年式と2004年式?
  • id:a-kuma3
    >2000年式と2004年式?
    Excel の日付は、基準日からの相対日数です。
    書式で、日付に見せているだけです。

    Excel は、最初は Mac 版で、そのときは 2004年1月1日からの相対日でした。

    Windows 版を出すときに、当時の表計算ソフトの第一人者である Lotus123 が、2000年1月1日からの相対日だったので、データ互換を取るために仕様を合わせたのだろうというのが、もっぱらの噂です。
  • id:tea_cup
    質問の1900年と1904年で正しいです。
    https://support.microsoft.com/ja-jp/kb/214330/ja

    1980年代製造のソフトが2000年からの相対日を使うといきなり負の値が必要になっちゃいます。

この質問への反応(ブックマークコメント)

トラックバック

  • 人力検索 今月の回答 バッテリー(電池)が「上がる」とはどんな状態なのでしょうか?「切れる(残量がなくなる)」とは違うのでしょうか? 液面が下がるのにバッテリー上がりとはこれ如
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません