先日、あるお客様に日程表を送付しました。
そのお客様から、
「日程表が分かりづらい」
というご指摘をいただきました。
これに対して、僕は???でした。
その後、お客様と直接電話でお話しし、
「分かりづらい」原因が判明しました。
僕が送付した日程表は
Excel 2007で作成されています。
その日程表に記載されていた日付が、
お客様の環境では
全て意味不明な数値になっていたんですね
たとえば、「12月17日」が「41260」のように……
これでは、「分かりづらい」というよりも
もはや「何が何だか分からない」状態です
では、なぜ日付は意味不明な数値になってしまったのか?
原因は、Excelシートに入力した日付が、
日付型という特殊な数値として保持されるからです。
たとえば、僕が「12月17日」と入力した日付は、
「2012/12/17」という形式でセル内に保持されています。
ただ、この「2012/12/17」という値もまた、
Excel内部に保持されている数値とは異なります。
実際に保持されているデータを見てみましょう
1.上記のセルを選択
2.[ホーム]→[書式]→[セルの書式設定]を選択
3.[標準]を選択して[OK]ボタンをクリック
以上の作業を実施した結果……
あれぇ?
「12月17日」が「41260」になってる???
この意味不明な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」に変換されません。
(シート上で「'」は表示されません)
どちらが望ましい解決法か?
①は、お客様の負担になるので当然却下
となれば、②しかないわけです。
僕が②に気付かなかったため、
お客様にご迷惑をかけてしまったんですね。
電子ファイルを作成する際には、
お客様のPCがどのような環境(設定)でも
お客様が正確に情報を得られるように作成すべき。
IT業界に勤務していたときは当たり前だったことも、
業界を離れると失念してしまいがちです。
今回の件では、僕自身、大変反省させられました。
ご迷惑をおかけしたお客様にはお詫び申し上げます。