日付の西暦と和暦を切り替える


セルに日付を入力すると、実際にはシリアル値という数値が入力されます。シリアル値は、1900年1月1日を1として、以降1日に1ずつ増加する連続した数値で、Excelが日付や時間を管理するために用いる特殊な仕組みです。ちなみに時間は小数点以下の数値で表されます。1=24時間ですから、1時間は1/24=約0.041666です。シリアル値内で時間は割り切れないことが多いので、時間同士を比較するようなケースでは丸め誤差などの影響を受けることがあります。まぁ、このへんの話はまた別の機会に。

さて、セルに「2022/1/23」と入力します。Enterキーを押すと、セルには「2022/1/23」と表示されます。数式バーにも同じように「2022/1/23」が表示されます。しかし、入力された実体は「44584」という数値(シリアル値)です。確認するには[セルの書式設定]ダイアログボックスを開き、[表示形式]タブの[分類]リストで「標準」を選択します。

確認したら[キャンセル]ボタンをクリックしてダイアログボックスを閉じてくださいね。[OK]ボタンをクリックすると、セルの表示が数値(シリアル値)になってしまいます。

セルに入力されているのは数値です。それをExcelが表示形式で「2022/1/23」のように見せているのです。ということは、表示形式を変更すれば、同じ日付でも好きな書式で表示することが可能だということです。日付をシリアル値で管理するメリットはここにもあります。

では、日付を和暦で表示してみましょう。まず[セルの書式設定]ダイアログボックスの[表示形式]タブを開きます。[分類]リストで「日付」を選択してください。右側に表示される[カレンダーの種類]で「和暦」を選択し、[種類]リストで「平成24年3月14日」を選択します。[OK]ボタンをクリックすると、セルの表示が和暦になります。

このとき、数式バーには相変わらず「2022/1/23」が表示されている点に留意してください。表示形式を変えただけなのですから、セル内に入力されている数値には何も変化が起きません。

なお、ダイアログボックス下部に書いてある「アスタリスク(*)で始まる日付形式は~」に関しては、下記コンテンツをご覧ください。VBAのTipsですけど、実際にWindowsの設定を変えて、セルの表示が変わる様子を解説しています。

意外と知らない「日付」のこと

ワンタッチで切り替える

もし、日付の西暦表示と和暦表示をワンタッチで切り替えたいのでしたら、条件付き書式を使えば簡単です。まずは、下図のように、普通に日付を入力します。ここでは、セルC1が"和暦"だったら和暦で表示してみます。

日付が入力されているセル範囲を選択して、[ホーム]タブ[スタイル]グループの[条件付き書式]ボタンをクリックし、[新しいルール]をクリックします。

[ルールの種類を選択してください]リストで、一番下の「数式を使用して、書式設定するセルを決定」を選択します。[次の数式を満たす場合に値を書式設定]ボックスに「=$C$1="和暦"」と入力します。

[書式]ボタンをクリックすると、[セルの書式設定]ダイアログボックスが開きます。[表示形式]タブの[分類]リストで「日付」を選択します。先と同じように、[カレンダーの種類]で「和暦」を選択してから和暦表示を選びます。

[OK]ボタンをクリックして[新しいルール]ダイアログボックスを閉じると、選択したセル範囲が和暦で表示されます。

セルC1には、入力規則のリストを設定しておくと便利ですね。