Excelには日付データ用の表示形式が何種類か用意されているが、「07/05」のように数値を2桁に統一して表示する方法は用意されていない。そこで、「ユーザー定義」の表示形式を使って日付の表示をカスタマイズする方法を紹介しておこう。あわせて、Excelで日付データを扱うときの考え方についても解説しておこう。

日付の表示形式

セルに日付データを入力するときは、「6/29」のように数字を「/」(スラッシュ)で区切ってデータを入力するのが一般的である。この場合、セルの表示は自動的に「6月29日」のように変化する。

「6/29」とデータを入力したときの表示

もちろん、年(西暦)を含めて日付を入力することも可能だ。この場合は、「2020/8/10」のようにデータを入力すればよい。すると、入力した内容と同じ「年/月/日」という形式で日付データが表示される。

「2020/8/10」とデータを入力したときの表示

これらの日付データは、「セルの書式設定」を使って表示形式を変更することが可能である。分類に「日付」を選択すると、日付データの表示方法を一覧から選んで指定できるようになる。

「セルの書式設定」を使った表示形式の指定

Excelに慣れている方であれば、ここまでの操作について特に問題はないだろう。ただし、日付データを縦方向に並べると、少しだけ気になる点がある。それは、月/日に応じて文字数が変化してしまうことだ。

日付データを「中央揃え」で並べた場合

月/日の数字が1~2桁に変化するのだから「仕方のない問題」といえるかもしれないが、文字の配置がガタガタしている状況を「好ましくない」と感じる方もいるだろう。このような場合は月/日を2桁に統一して、「06/29」や「07/03」のように日付を表示すると、統一感のある見た目に仕上げることができる。

ただし、「セルの書式設定」には、月/日を必ず2桁で表示する表示形式が用意されていない。このため、表示形式を自分で作成する必要がある。

「ユーザー定義」を使って日付の表形形式をカスタマイズ

“表示形式の作成”と聞くと、『なんか難しそうだな~』と思うかもしれない。しかし、実は意外と簡単である。順番に解説していこう。

表示形式を自分で作成するときは、分類に「ユーザー定義」を指定する。続いて、種類のテキストボックスに「mm/dd」と入力すると、月/日を必ず2桁で表示できるようになる。

月/日を必ず2桁で表示する「ユーザー定義」の指定

「mm/dd」の形式で表示された日付データ

もちろん、年を含めた形で日付を表示することも可能だ。この場合は、ユーザー定義の表示形式を「yy/mm/dd」と指定すればよい。

年/月/日を必ず2桁で表示する「ユーザー定義」の指定

「yy/mm/dd」の形式で表示された日付データ

このように、yy、mm、ddといった書式記号を使って表示形式を指定すると、好きな形式で日付データを表示できるようになる。そのほかExcelには、日付の表示に使用できる書式記号として、以下のような書式記号が用意されている。

aaa 曜日を漢字1文字で表示(日~土)
yy 年(西暦)を下2桁で表示
yyyy 年(西暦)を4桁で表示
m 月を表示(1~12)
mm 月を必ず2桁で表示(01~12)
mmm 月を英語の省略形3文字で表示(Jan~Dec)
mmmm 月を英語表記で表示(January~December)
d 日を表示(1~31)
dd 日を必ず2桁で表示(01~31)

年、月、日を区切る記号は、そのまま記述すればよい。たとえば「yyyy-mm-dd」と表示形式を指定すると、「2016-06-29」のように日付データを表示できる。

「年」「月」「日」といった記号以外の文字を表示するときは、その文字をダブルクォーテーション(")で囲って記述する。たとえば「yyyy"年"mm"月"dd"日"」と表示形式を指定すると、「2016年06月29日」のように日付データを表示することが可能となる。

文字を含む「ユーザー定義」の指定

「yyyy"年"mm"月"dd"日"」の形式で表示された日付データ

曜日を表示する書式記号

Excelには、入力した日付から「曜日」を算出して表示する書式記号も用意されている。

aaa 曜日を漢字1文字で表示(日~土)
aaaa 曜日を漢字3文字で表示(日曜日~土曜日)
ddd 曜日を英語の省略形3文字で表示(Sun~Sat)
dddd 曜日を英語表記で表示(Sunday~Saturday)

これらの書式記号を使って、曜日を付けた形で日付データを表示することも可能だ。たとえば「mm/dd(aaa)」と表示形式を指定すると、「06/29(水)」のように日付データを表示できる。曜日が重要なファクターとなる表を作成する場合などに活用するとよいだろう。

曜日を含む「ユーザー定義」の指定

「mm/dd(aaa)」の形式で表示された日付データ

年を和暦で表示

年を和暦で表示することも可能だ。この場合は、yyやyyyyの代わりに以下の書式記号を使って表示形式を指定する。元号の表示には、ggg、gg、gのいずれかを使用し、eeまたはeで年の表示桁数を指定する。

aaa 曜日を漢字1文字で表示(日~土)
aaaa 曜日を漢字3文字で表示(日曜日~土曜日)
ddd 曜日を英語の省略形3文字で表示(Sun~Sat)
dddd 曜日を英語表記で表示(Sunday~Saturday)
ggg 和暦の元号を「明治」「大正」「昭和」「平成」で表示
gg 和暦の元号を「明」「大」「昭」「平」で表示
g 和暦の元号を「M」「T」「S」「H」で表示
e 年を和暦で表示
ee 年を2桁の和暦で表示

たとえば「ggee"年"mm"月"dd"日"」と表示形式を指定すると、「平28年06月29日」のように日付データを表示できる。役所に提出する書類など、年を和暦で表記する場合に活用できるので、念のため覚えておくとよいだろう。

年を和暦で表示する「ユーザー定義」の指定

「ggee"年"mm"月"dd"日"」の形式で表示された日付データ

日付データの内部処理について

最後に、Excelが日付データをどのように処理しているかを解説していこう。Excelは日付データを数値データの一種として扱っている。その起点となるのは1900年1月1日で、この日付が数値データの「1」に対応する。

以降は、1日経過するごとに数値が1ずつ増加していく。たとえば、1900年1月2日は数値データの「2」、1900年1月3日は「3」、1900年2月1日は「32」として処理される仕組みになっている。ちなみに、2016年9月30日は「42643」という数値データになる。

このとき、1900年が閏年(うるうどし)として処理されるていることに注意しなければならない。本来、1900年は閏年でないため、1900年2月29日は存在しないが、Excelの中では1900年2月29日が存在するものとして処理されている。このため、1900年2月28日以前の日付は、曜日が1日ずれてしまう不具合が生じる。

これは一種のバグともいえるが、最新版のExcel 2016でも修正は施されていない。というのも、このバグを修正してしまうと、古いバージョンのExcelで作成した日付データが1日ずれてしまい、より大きな問題を引き起こす可能性があるからだ。

もともとは、他の表計算アプリとの互換性を維持するために、既知のバグとして黙認されてきた問題であるが、先ほど述べた理由などから、今後も修正は行われないかもしれない。

現実的な問題として考えると、1900年2月28日以前の日付を使用する機会は滅多にないため、特にトラブルが生じることはないと思われる。100年以上も前の古い日付を扱う方のみ、豆知識として覚えておくとよいだろう。

閏年について

西暦が4で割り切れる年は、1年が366日ある(2月29日がある)閏年になります。ただし、西暦が100で割り切れる場合は「例外的に閏年にしない」というルールがあるため、1900年は閏年にはなりません。これに加えて、西暦が400で割り切れる場合は「例外の例外で閏年になる」というルールもあります。このため、2000年は閏年になります。