Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 和暦の年度を表示する

対象:Excel2007, Excel2010, Excel2013

「excel 自動的に計算 年月日 年度 和暦」
「エクセル 日付から年度 和暦」
「エクセルで和暦年度表記するには」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、結構あります。

日付データから、和暦の年度を表示させる方法を探している方による検索です。

年度は3か月前の日の年と一致する

西暦での年度表示ならば、IF関数を使った3月までなら前の年の数値を作る数式が理解しやすいように感じますが、和暦での年度表示となると、「3か月前の日付の年が年度と同じである」という考え方を理解したほうがシンプルな数式で済ませられます。

例えば、
2014年度(平成26年度)の最後の日である、
2015年3月31日の3か月前は2014年12月31日で、
2015年度(平成27年度)の最初の日である、
2015年4月1日の3か月前は2015年1月1日です。

いずれも3か月前の日付の年が、年度と合致しています。

そして、この「3か月前の日の年が年度と同じである」というルールは、他のどんな日付であっても成立します。

[スポンサードリンク]

EDATE関数とユーザー定義書式による和暦の年度表示

3か月前の日付を計算するには、2007以降Excelではn月前・n月後の日付を計算するEDATE関数が標準で使えるようになっていますから、これを使うのが便利です。(2003までのExcelでEDATE関数を使うには[分析ツール]アドインの組み込みが必須でした)
▼操作概要:日付データから和暦の年度を表示する
※A1セルに日付が入力されているときにB1セルに和暦の年度を表示する例
B1セルに「=EDATE(A1,-3)」という数式を入力
 ↓
B1セルで「ggge"年度"」というユーザー定義書式を設定

「=EDATE(A1, -3)」という数式で、A1セルに入力されている日付の3か月前の日付が取得できます。

例えば、A1セルに「2015/3/31」という日付データが入力されているときに、B1セルに「=EDATE(A1, -3)」という数式を入力すると「42004」というシリアル値が表示されます。(ここでB1セルに一般的な日付書式を設定すると「2015/3/31」の3か月前の日付「2014/12/31」が表示されます)

今回は和暦の年度を表示させたいので、B1で[セルの書式設定]ダイアログを表示させて[表示形式]タブの[分類]欄で「ユーザー定義」を選択して[種類]欄に「ggge"年度"」と指定するというわけです。

和暦の年度を表示する

「平成」といった元号が不要なら「e"年度"」
「平成」を「H」と表示するのなら「ge"年度"」
といったユーザー定義書式を設定すればOKです。

このあたりの考え方は、ユーザー定義書式で和暦の年を表示するのと同じです。

このレベルのことを行う方なら、[セルの書式設定]ダイアログの表示にはショートカットキー[Ctrl]+[1]を是非使ってください。

日付データをどこかのセルに入力するのではなく、今日の日付から和暦の年度を自動的に表示させたいのなら、入力する数式を
「=EDATE(TODAY(), -3)」
として「ggge"年度"」というユーザー定義書式を設定です。

EDATE関数を使わずユーザー定義書式で和暦の年度表示

EDATE関数を使わず、DATE・YEAR・MONTH・DAY関数とユーザー定義書式を使って和暦の年度表示を行う場合は、以下のとおりです。
▼操作概要:日付データから和暦の年度を表示する
※A1セルに日付が入力されているときにB1セルに和暦の年度を表示する例
B1セルに
「=DATE(YEAR(A1), MONTH(A1)-3, DAY(A1))」
 ↓
B1セルで「ggge"年度"」というユーザー定義書式を設定

日付データから、年・月・日を表す数値を、YEAR関数・MONTH関数・DAY関数でそれぞれ取得して、月の数値を「-3」することで3か月前の日付を計算しています。

EDATE関数とTEXT関数を使って和暦の年度表示を行う

EDATE関数と、ユーザー定義書式を使えば、数式はとてもシンプルになります。

ユーザー定義書式を使わないで、関数だけで和暦の年度表示を行うとなると数式はどうしても複雑になります。
▼操作概要:日付データから和暦の年度を表示する
※A1セルに日付が入力されているときにB1セルに和暦の年度を表示する例
B1セルに
「=TEXT(EDATE(A1,-3), "ggge") & "年度"」
という数式を入力する

先の「EDATE(A1,-3)」という数式を、書式を設定するTEXT関数の第1引数に指定して、第2引数にユーザー定義書式で設定したのに近い「ggge」を指定し、「年度」という文字列を文字列連結演算子「&」を使って結合しています。

今日の日付の和暦年度を自動的に表示したいのなら、
「=TEXT(EDATE(TODAY(),-3), "ggge") & "年度"」
です。

もちろんEDATE関数を使わず、DATE・YEAR・MONTH・DAY関数で同じことを行おうとすると数式はもっと長くなります。

IF関数を使って和暦の年度表示を行う

ちなみに、IF関数を使って、3月までなら前の年の数値を作るような数式で、和暦の年度表示するのならば、以下のような数式でしょうか。
▼操作概要:日付データから和暦の年度を表示する
※A1セルに日付が入力されているときにB1セルに和暦の年度を表示する例
B1セルに
「=TEXT(A1, "ggg") & IF(MONTH(A1)<=3, TEXT(A1,"e")-1, TEXT(A1,"e")) & "年度"」
という数式を入力する

やはり、はじめにご紹介した「=EDATE(A1,-3)」という数式を入力して、ユーザー定義書式「ggge"年度"」を設定するのが簡単だと感じます。

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 和暦の年度を表示する

「日付の処理・計算」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.