機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > 機能と数式

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



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

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



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

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

[セルの書式設定]ダイアログボックスをもう一度開きます。[表示形式]タブの[分類]リストで、今度は「日付」を選択しましょう。右の[種類]リストに日付書式のサンプルが表示されますので「平成13年3月14日」を選択してみましょう。[OK]ボタンをクリックすると、セルの日付を和暦で表示できます。このとき、数式バーには相変わらず「2005/1/22」が表示されている点に留意してください。表示形式を変えただけなのですから、セル内に入力されている数値には何も変化が起きません。



ワンタッチで切り替える


[セルの書式設定]ダイアログボックスを使えば、セルに入力した日付を西暦や和暦で表示することができます。でも面倒くさいですよね。そこで、別のセルに「西暦」と入力したら西暦で表示し、「和暦」と入力したら日付の表示形式を和暦に変更する仕組みを紹介しましょう。これにはTEXT関数を使います。TEXT関数に関しては、この関数はこう使え!「TEXT関数」をご覧ください。

TEXT関数は、[セルの書式設定]ダイアログボックスの[表示形式]タブで設定できるような表示形式で加工した結果を返す関数です。たとえば「=TEXT(1234,"\#,###")」は「\1,234」という文字列を返します。

TEXT関数を使って「2005/1/22」を「平成17年1月22日」と表示するには、「=TEXT("2005/1/22","ggge年m月d日")」とします。下図は今後の展開を考えて、セルC2の配置を右揃えにしています。TEXT関数が返すのは文字列ですから、実際には左揃えで表示されます。



同じように、TEXT関数で日付を西暦で表示するには「=TEXT("2005/1/22","yyyy年m月d日")」とします。この2つをIF関数で切り替えればいいんです。セルB2に入力規則のリストを設定して「西暦」と「和暦」を選択できるようにします。入力規則でリストを作成する方法は、「ワークシート上でリスト入力する」をご覧ください。IF関数と組み合わせたTEXT関数は次のようになります。

=IF(B2="和暦",TEXT("2005/1/22","ggge年m月d日"),IF(B2="西暦",TEXT("2005/1/22","yyyy年m月d日"),""))



チェックボックスやオプションボタンで切り替える手もありますね。





このエントリーをはてなブックマークに追加