• 締切済み

エクセル日付 シリアル値から変換

あるサイトから一覧をpower queryを使って読み込んでいますが、1900年以降の日付は問題なく2020/9/10などと読み込んで表示されるのですが、1900/1/1前の日付は、########と表示されてしまいます。 シリアル値にしてみると、例えば1899/12/19のところが-11となっていて、1900年1月1日を起点にdayをマイナスした数値となっているようです。(1902/1/21は752、1899/11/08は-52)。power queryでサイトから読み込む段階でこれを回避して日付表示にするやり方、もしくは、読み込んだ後の処理でも構いませんので、マイナスの数値となっている部分を日付表示にするにはどうしたらよいですか? 書式設定の表示形式ー日付を変更してもできません。

みんなの回答

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

以下のマクロソフトのページは、年齢計算の方法が記載されていますが、Excelでは1/1/1900 と12/31/9999 の間の日付しか使用できないと記載されています。 Excel で1/1/1900 より前の年齢を計算する方法 https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/calculate-age-before-1-1-1900

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

いや、それはExcelの仕様だから無理、というものです…。 カーソルを当てると出るヘルプの通り、マイナスのシリアル値は定義されておらず、日付変換できません。 Excelに手入力で「1800/1/1」などと入れると、入りますが、それは文字列として入ってしまっています。シリアル値はとれません。 -- エクセルメニューの、オプション - 詳細設定には、「1904年から計算する」というチェックボックスがあります。 これをチェックするとシリアル値1=「1904/1/1」として計算表示されるようになります。 (チェックしない場合、シリアル値0=「1900/1/1」です。) そしてこちらのモードだと、マイナス値のシリアルも日付として表示されますが、あなたの期待とは違うものでしょう。 -11は、シリアル値11の日付、「1904/1/12」にマイナスがついたものとなっています。 結局、Excelでは「1900年以前の日付を扱うことは不可能」という仕様であり、これはMicrosoftが根本からExcelを作り直さなければ直せないものでしょう。

honeybeans
質問者

お礼

質問後にネットで調べて分かりました。何か解決策があってもよさそうなものですが、なさそうですね。マニュアルで修正します。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

Excel の使用經驗は豊富な癖に Power Query とやらは使った事なしの私です。 今までは試してみた事も無かったけど、「1900/1/1前の日付は、########と表示されてしまい」とか、「1899/12/19の」シリアル値が「-11」とか、「1899/11/08は-52」とか、私の Excel 2019 とは異なります。私の場合は、########にもエラーにも成らず、入力した儘の文字列表示です。 參考までに貴方の Excel のバージョンは何ですか?

honeybeans
質問者

補足

2013です。

関連するQ&A