列を でフォーマットしmmm dd hh:mm:ss
、セルの値を に設定すると0
、 と表示されますJan 00 00:00:00
。
これは、第1部、セクションL.2.16.9.1と矛盾しているように思われます。ECMA-376 規格Excel はこれに従うと言われています。
仕様より:
数値として解釈できる日付はシリアル値です。これは、符号付き整数の日付コンポーネントと符号なし小数時刻コンポーネントで構成されます。時間が進むにつれて、シリアル値の日付コンポーネントは 1 日ごとに 1 ずつ増加します。シリアル値は UTC の日付と時刻を表すため、タイムゾーン情報はありません。日付をシリアル値に変換するには、次の 3 つの異なる基準を使用できます。
- 1900 年の日付ベース システムでは、下限は -9999 年 1 月 1 日 00:00:00 で、シリアル値は -4346018 です。上限は 9999 年 12 月 31 日 23:59:59 で、シリアル値は 2,958,465.9999884 です。この日付ベース システムのベース日付は 1899 年 12 月 30 日で、シリアル値は 0 です。
- 1900 下位互換性日付ベース システムでは、下限は 1900 年 1 月 1 日 00:00:00 で、シリアル値は 1 です。上限は 9999 年 12 月 31 日 23:59:59 で、シリアル値は 2,958,465.9999884 です。この日付ベース システムの基準日は 1899 年 12 月 31 日で、シリアル値は 0 です。
- 1904 下位互換性日付ベース システムでは、下限は 1904 年 1 月 1 日 00:00:00 で、シリアル値は 0 です。上限は 9999 年 12 月 31 日 23:59:59 で、シリアル値は 2,957,003.9999884 です。この日付ベース システムの基準日は 1904 年 1 月 1 日で、シリアル値は 0 です。
このことから、0
上記のシステムのどれを選択するかに応じて、1899 年 12 月 30 日、1899 年 12 月 31 日、または 1904 年 1 月 1 日と表示されるはずです (Excel では、ここである程度のカスタマイズが可能です)。ここで何か見落としているのでしょうか、それとも、仕様から外れている理由を説明できる人はいますか?
関係があるかどうかはわかりませんが、私はバージョン 16.61.1 を使用しています。
答え1
これはECMA-376規格のパート1、セクションL.2.16.9.1と矛盾しているように思われます。
1900年の下位互換性のある日付ベースシステムでは、下限は1900年1月1日00:00:00で、シリアル値は1です。
いいえ、この部分とは矛盾しません。下限はシリアル値 1 です。シリアル値 0 は制限外なので使用すべきではなく、これを使用しても正しい結果は期待できません。
この部分は日付関数のドキュメント:
Excel は、コンピュータが使用している日付システムに従って年引数を解釈します。デフォルトでは、Windows 版 Microsoft Excel は 1900 日付システムを使用します。つまり、最初の日付は 1900 年 1 月 1 日になります。