Introduction
Ver. all 2013 2016 2019 2021 365
西暦で入力された日付を関数を使用して和暦へ変換する方法です。
エクセルの日付は「シリアル値」という数値で管理されているので、見た目は自由に変更できます。
[ホーム]タブ → [表示形式起動ツール]をクリックして、
左側で[日付]を選び、右側で「和暦」を選びます。
ここでは、その表示形式を使用せず、関数で和暦に変更する方法を紹介します。
使用するのはDATESTRING関数。それほど有名ではない関数です。
DATESTRING関数・・・シリアル値を和暦に変換する
=DATESTRING(シリアル値)
- シリアル値・・・和暦に変換したいセル番地を指定
後半では、TEXT関数など他の関数を使用する例も紹介します。
表示形式を使いたくない時の方法だにゃ
西暦を和暦に変換する関数
では、下の「B2」に入力されている日付を「D2」に和暦へ変換してみます。
使用するのは「DATESTRING関数」。
DATESTRING関数・・・シリアル値を和暦に変換する
=DATESTRING(シリアル値)
- シリアル値・・・和暦に変換したいセル番地を指定
この関数は[関数の挿入]画面に表示されないので、直接キーボードで入力する必要があります。
入力する際は小文字でも構いません。引数(括弧の中身)は変換したいセルを指定するだけです。
和暦への変換ができました。
簡単ですね。
「年」のみ表示する方法
年月日から、「年」のみを和暦で抜き出して表示したい場合ですが、2つ紹介します。
一つ目は前述したDATESTRING関数とLEFT関数を使う方法です。
下の表の「E列」は、かなり昔から最近までの日付を和暦に変換したものです。
赤枠の場所が和暦の場所ですが、全て2文字ですね。
ということで「令和〇〇年」までの左側から5文字分を抜き出せば、「年」までを抜き出すことになります。
左から好きな文字数を抜き出すことができる関数は「LEFT関数」
LEFT関数・・・文字列の先頭(左)から指定された数の文字を返す
=LEFT(文字列,文字数[省略可])
- 文字列・・・取り出す文字を含むセルを指定
- 文字数・・・取り出す文字数を指定
先ほどの「DATESTRING関数」を「LEFT関数」で囲むように作成します。
=LEFT(DATESTRING(C2),5)
これで、和暦変換後の5文字だけが表示されるようになります。
下に式をコピーして終了。
注意点としては、「年」の文字数が「01」のように2桁になるということです。
もう一つは「TEXT関数」を使う方法です。
TEXT関数・・・表示形式を指定して、数値に書式設定を適用することができる
=TEXT(値,表示形式)
- 値・・・表示形式を変更する値(場所)を指定
- 表示形式・・・書式設定を指定(設定はダブルクォーテーションで囲む)
「値」の場所に日付のセルを指定して、「表示形式」の場所に「年」の和暦の表示形式を入力します。
ではやってみましょう。
関数を入れるセルを選択 → [関数の挿入]ボタンをクリック。
[関数の分類]を[すべて表示]か[文字列操作]に変更して、「TEXT」を選んで[OK]。
入力する引数は下画像のようになります。
[表示形式]の場所には「”gggee”」と入力します。
「ggg」が「令和」などの文字部分で、「ee」が年号2桁表示するということ。
※”ggge”にすると、「01」が「1」のように1桁表示になります。
また「”」ダブルクォーテーションで囲む必要があります。
=TEXT(C2,”ggge”)
これら日付の表示形式一覧は下のリンク先に詳細がありますので、必要な方はご覧ください。
これで日付の年だけを和暦で抜き出すことができます。
「01」ではなく「元年」と表示する方法
今回説明した「DATESTRING関数」を使用すると、年号の初年度は「元年」ではなく「01年」と表示されます。
これを「元年」と表示したいときの方法です。
SUBSTITUTE関数を使用する方法
文字を置き換える関数に「SUBSTITUTE関数」があります。この関数を使用して、「01年」を「元年」に置き換えてしまいましょう。
まず、関数を入れるセルを選択 → [関数の挿入]ボタンをクリック。
[関数の分類]を[すべて表示]か[文字列操作]に変更して、「SUBSTITUTE」を選んで[OK]。
SUBSTITUTE関数・・・文字列中の指定した文字を、新しい文字で置き換える関数
=SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象[省略可])
- 文字列・・・置換対象のセルを選択
- 検索文字列・・・置き換え前の文字列を指定
- 置換文字列・・・置き換え後の文字列を指定
- 置換対象・・・置き換え前の文字列で同じものがある場合、何番目を削除したいか数字で指定
今回は「01年」を「元年」に変更したいので、下のように引数を指定します。
※最後の引数は空欄のままでOK。
=SUBSTITUTE(DATESTRING(B2),”01年”,”元年”)
これで「元年」と表示することができます。
TEXT関数を使用する方法
「年」だけを抜き出す方法で説明した「TEXT」関数を使用する方法で、「表示形式」の場所を「元年」表記のものを指定します。
※この方法はバージョン2019以降でしか使用できませんので注意してください。
元年を表示する表示形式は最近のバージョンで使用できるのですが、かなり長くなっています。
通常の表示形式で使用する場合は
[$-ja-JP-x-gannen]ggge”年”m”月”d”日”;@
となりますが、関数で使用する場合は一部不要な記号を外したものをダブルクォーテーションで囲みます。
“[$-ja-JP-x-gannen]ggge年m月d日”
これをテキスト関数の[表示形式]の場所に入力します。
完成した関数は下のようになります。
=TEXT(B2,”[$-ja-JP-x-gannen]ggge年m月d日”)
これで和暦元年表示のできあがりです。
まとめ
DATESTRING関数を紹介するつもりが、他の関数も登場することになってしまいました。
DATESTRING関数は、[関数の挿入]画面には表示されないので注意が必要です。
また、状況に応じてテキスト関数など他の関数との組み合わせなども必要になるので柔軟な対応が必要です。
基本的には無理に関数を使用せず、表示形式で対応するのが簡単かもしれません。
日付もこだわると設定が面倒な時があるにゃ