Excelの罠~日付が意味不明な数値になってしまう原因~ | 江東区の家庭教師&ライターのみみずく~半蔵門線・大江戸線沿線及びオンラインで指導中~

江東区の家庭教師&ライターのみみずく~半蔵門線・大江戸線沿線及びオンラインで指導中~

江東区周辺で家庭教師&ライターをしています。
半蔵門線・大江戸線沿線での対面指導だけでなく、Zoomを使ったオンライン指導も可能です。
学校の補習、高校受験・大学受験、推薦・AO入試対策等、家庭教師としての活動記録です。

先日、あるお客様に日程表を送付しました。


そのお客様から、

「日程表が分かりづらい」

というご指摘をいただきました。


これに対して、僕は???でした。

その後、お客様と直接電話でお話しし、

「分かりづらい」原因が判明しました。


僕が送付した日程表は

Excel 2007で作成されています。

その日程表に記載されていた日付が、

お客様の環境では

全て意味不明な数値になっていたんですね叫び

たとえば、「12月17日」が「41260」のように……


これでは、「分かりづらい」というよりも

もはや「何が何だか分からない」状態です叫び


では、なぜ日付は意味不明な数値になってしまったのか?


原因は、Excelシートに入力した日付が、

日付型という特殊な数値として保持されるからです。


たとえば、僕が「12月17日」と入力した日付は、

「2012/12/17」という形式でセル内に保持されています。


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_01


ただ、この「2012/12/17」という値もまた、

Excel内部に保持されている数値とは異なります。

実際に保持されているデータを見てみましょう目


1.上記のセルを選択


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_02


2.[ホーム]→[書式]→[セルの書式設定]を選択


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_03


3.[標準]を選択して[OK]ボタンをクリック


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_04


以上の作業を実施した結果……


あれぇ?

「12月17日」が「41260」になってる???


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_05


この意味不明な5桁の数値こそ、

Excel内部で保持される日付型の正体です!!


日付型は「1900/1/1」を「1」として、

「1900/1/2」を「2」、「1900/1/3」を「3」、……

とするシリアル値(日時を計算するための数値)です。


このシリアル値を用いることによって、

たとえば「1900/1/1」の3日後を求める計算は次のようになります。


 "1900/1/1" + 3

= 1 + 3

= 4

= "1900/1/4"



さて、この日付型、時に問題をもたらします。


Excelの設定によっては、

日付ではなくシリアル値として表示されるんです!!


結果、冒頭のような問題が生じたわけです。


問題解決の方法は以下の2通り。


①Excelの設定を統一する。

②日付を、日付型ではなく文字列として入力する。


冒頭の事例で考えると、

①はお客様にExcelの設定を変更してもらいます。


②は、僕がファイルを作成する段階で行ないます。


入力した日付を、日付型ではなく文字列として

Excel内部に保持させるためには、

日付の冒頭に「'」(アポストロフィ)を付けます。


つまり、「'12月17日」と入力すれば、

「12月17日」は「41260」に変換されません。

(シート上で「'」は表示されません)


墨田区両国のプロ家庭教師みみずく~総武線・大江戸線・新宿線沿線で指導中~-20121218_06


どちらが望ましい解決法か?


①は、お客様の負担になるので当然却下NG


となれば、②しかないわけです。


僕が②に気付かなかったため、

お客様にご迷惑をかけてしまったんですね。


電子ファイルを作成する際には、

お客様のPCがどのような環境(設定)でも

お客様が正確に情報を得られるように作成すべき。


IT業界に勤務していたときは当たり前だったことも、

業界を離れると失念してしまいがちです。

今回の件では、僕自身、大変反省させられました。


ご迷惑をおかけしたお客様にはお詫び申し上げます。