Excel 関数による文字列操作だけで西暦を和暦に変換する方法

Office
スポンサーリンク

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関数」でも取得することができます

=value(セル指定)

下図は冒頭でmid関数を使って無理やり作成した文字列「2014/10/10」を、value関数にかけてシリアル値を取得したものです。

シリアル値を取得したセルにおいて「セルの書式設定」から表示形式を変更すると、下図のように簡単に和暦を得ることができます。

これでとりあえずは「YYYYMMDD」形式のテキストを、和暦日付に変換するというところまでできましたね。

Excelで”YYYYMMDD”文字列を関数だけで和暦にする方法

ですが、上記の方法だと「セルの書式設定」⇒「表示形式」をいじらなければならず、マウスを使用した作業が発生してしまいますよね。

キーボードから出来る限り手を離したくない人にとって、これは意外と大きな問題です

そこで、Excelに用意された関数だけで和暦表示を実現する方法を紹介します。

表示させたいセルに以下のような数式を入力しましょう。

=text(セル指定,”ggge年mm月dd日”)

関数だけで素早く和暦表示が得られました。

ちなみに漢字表記(昭和、平成、令和)か、ローマ字表記(S、H、R)かも以下のように指定することで切り替えることができます。

  • 漢字表記:=text(セル指定,”ggge年mm月dd日”)
  • ローマ字表記:=text(セル指定,”ge年mm月dd日”)

セルの書式設定をいじらなくてよい分、断然ラクですね

Excelをもっと使いたおす方法

Excelをもっと使いたおす方法については以下にまとめています。

Excelをもっと使いたおすためのUdemy学習教材 5選
本記事では、Excelをもっと使いたおすためのUdemy学習教材について紹介します。 はじめに このブログでもExcelに関する話題をかいつまんで取りあげていますが、体系立った知識を得るためには、やっぱり書籍か動画の学習教材を使うのが一番効...
タイトルとURLをコピーしました