Excel上で入力された日付データを西暦から和暦に変換したいというケースは意外に多いのではないでしょうか。
この記事では、Excelの関数だけで西暦を和暦に変換する方法について解説します。
業務上なにかと使う機会は出てきますので知っておくと便利ですよ
Excelの西暦和暦変換に関する背景的な話
ときどきユーザから「○○○という条件の人の氏名と生年月日のリストを作成してほしい」などという要望をうけます。
このようなときは、その情報をもつシステムのデータベースから指定条件のレコードを抽出し、依頼主が見れる形に整えて(Excelファイルに貼りつけるなどして)依頼主へ渡すのが一般的です。
ここで、データベースの生年月日データの持ち方が「yyyymmdd」形式のテキスト型の場合は、まず下図のように単純にmid関数で4桁と2桁と2桁にスラッシュで区切るというところがスタート地点になります。
ただし、これではテキストを整形して日付のように見せているだけに過ぎず、「日付型」というデータの持ち方になっているわけではないことに注意が必要です。
このように日付型のデータでない場合、その後のいろいろな日付操作に関するExcelの便利機能はできなくなります。(日付としての足し算・引き算、西暦和暦変換など)
ではここからどのようにもっていくのが正解なのでしょうか?
上記の依頼データも「生年月日は和暦で!」という依頼だった場合、あなたならどうしますか?
Excelで”YYYYMMDD”文字列を和暦にする一般的な方法
西暦/和暦の変換は、シリアル値(後述)を介しての変換であれば、表示形式を変更することで簡単にできます。
普段からExcelを使うような人は知っている人が多いかもしれませんが、詳しくない人向けに念のため解説しますね。
例えばExcelのセルに最初から「2014/10/10」とスラッシュ込みの日付を打ち込んでEnterを押すと、自動的にExcelが日付型に変換してくれます。
ここでいう「日付型に変換」を噛み砕いていうと、①入力したテキスト文字列が”シリアル値”に変換されてセルにセットされ、②さらにセルの書式設定でいう表示形式が「日付型」になる、ということです。
「日付を打ってEnter」の操作裏では2段階のことをExcelが自動的にやってくれてたんだ
きちんと日付型で打ち込まれたセルの「セルの書式設定」を見ると下記のように表示形式が「日付」になっていることが確認できます。さらに必要に応じて簡単に西暦(グレゴリオ暦)/和暦を切り替えることができることもわかりますね。
ちなみにこの状態で「標準」をクリックしてみると、「2014/10/10」に対応するシリアル値「41922」が入力されていることも確認できます。これがシリアル値というものです。
シリアル値についてあらためて説明しておくと、1900年1月1日が基準日となりシリアル値は「1」となります。ここから1日経過することにシリアル値は1ずつ増加していきます。例えば1900年1月2日のシリアル値は2となります。
Excel上の日付は、このように1900年1月1日から何日経過したかというシリアル値で管理されており、前述したように日付を表示する時はこのシリアル値を任意の日付フォーマットに変換して画面に表示しているだけです。
シリアル値は「value関数」でも取得することができます。
下図は冒頭でmid関数を使って無理やり作成した文字列「2014/10/10」を、value関数にかけてシリアル値を取得したものです。
シリアル値を取得したセルにおいて「セルの書式設定」から表示形式を変更すると、下図のように簡単に和暦を得ることができます。
これでとりあえずは「YYYYMMDD」形式のテキストを、和暦日付に変換するというところまでできましたね。
Excelで”YYYYMMDD”文字列を関数だけで和暦にする方法
ですが、上記の方法だと「セルの書式設定」⇒「表示形式」をいじらなければならず、マウスを使用した作業が発生してしまいますよね。
キーボードから出来る限り手を離したくない人にとって、これは意外と大きな問題です
そこで、Excelに用意された関数だけで和暦表示を実現する方法を紹介します。
表示させたいセルに以下のような数式を入力しましょう。
関数だけで素早く和暦表示が得られました。
ちなみに漢字表記(昭和、平成、令和)か、ローマ字表記(S、H、R)かも以下のように指定することで切り替えることができます。
セルの書式設定をいじらなくてよい分、断然ラクですね
Excelをもっと使いたおす方法
Excelをもっと使いたおす方法については以下にまとめています。