「提出書類は和暦指定なのに、データは西暦…」
「Excelの表を平成や令和で表示したいけど、どうやるの?」
Excelを使っていると、和暦(元号)と西暦の切り替えが必要になることがよくありますよね。日本では官公庁や自治体の書類、学校関係、保険関係など、まだまだ和暦を使用する場面が多く、書類やシステムによって指定がバラバラで、いちいち手作業で変換している人も多いのではないでしょうか。
例えば、「令和3年4月1日」を「2021年4月1日」に変換したり、その逆を行ったりする作業は、ミスが発生しやすく、非効率的です。
でも実はExcelには、和暦と西暦を自動で変換する方法がちゃんと用意されています。この記事では、初心者でもわかるように、和暦⇔西暦の変換テクニックをやさしく解説します。書式設定だけで変える方法、関数を使った変換方法、さらには実際のビジネスシーンでの活用例まで詳しく紹介しますので、ぜひ最後まで読んでください。
【基本編】和暦と西暦の基本知識

日本の元号システム
現在使用されている主要な元号
令和(れいわ)
- 開始:2019年5月1日
- 現在も継続中
- 西暦との対応:令和1年 = 2019年
平成(へいせい)
- 期間:1989年1月8日~2019年4月30日
- 西暦との対応:平成1年 = 1989年
昭和(しょうわ)
- 期間:1926年12月25日~1989年1月7日
- 西暦との対応:昭和1年 = 1926年
元号の変換ルール
基本的な計算式
令和 = 西暦 - 2018
平成 = 西暦 - 1988
昭和 = 西暦 - 1925
注意点
- 元号の切り替わりは年の途中で発生する場合がある
- 正確な変換には月日も考慮する必要がある
Excelでの日付の扱い
シリアル値システム
Excelの日付管理
- すべての日付は内部的にシリアル値(連続した数値)で管理
- 1900年1月1日を「1」として、日数をカウント
- 表示形式によって和暦・西暦の切り替えが可能
例:シリアル値の確認
2025年7月16日 = 45855(シリアル値)
令和7年7月16日 = 45855(同じシリアル値)
メリット
- 内部データは同じなので計算やソートが正確
- 表示形式の変更だけで和暦・西暦を切り替え可能
- データの整合性が保たれる
【実践編】表示形式で和暦⇔西暦を切り替える
最も簡単な方法:セルの書式設定
基本的な手順
西暦から和暦への変換
- 対象のセルまたは範囲を選択
- 右クリック→「セルの書式設定」
- 「表示形式」タブを選択
- 「分類」で「日付」を選択
- 「カレンダーの種類」で「和暦」を選択
- 希望する表示形式を選択
- 「OK」をクリック
表示形式の例
西暦:2025/7/16
和暦:令和7年7月16日
和暦(短縮):R7/7/16
詳細な表示形式の選択
和暦の表示パターン
- 標準形式:令和7年7月16日
- 短縮形式:R7.7.16
- 漢数字形式:令和七年七月十六日
- カスタム形式:自由な組み合わせ
西暦の表示パターン
- 標準形式:2025/7/16
- フル形式:2025年7月16日
- 英語形式:July 16, 2025
- ISO形式:2025-07-16
カスタム表示形式の作成
ユーザー定義での詳細設定
アクセス方法
- セルの書式設定を開く
- 「分類」で「ユーザー定義」を選択
- 「種類」欄で書式コードを入力
和暦のカスタム書式コード
基本的な書式記号
- g:元号の頭文字(R、H、S等)
- gg:元号の略称(令、平、昭等)
- ggg:元号の正式名称(令和、平成、昭和)
- e:元号年(1、2、3等)
- ee:元号年(01、02、03等)
実用的な書式例
ggge年m月d日 → 令和7年7月16日
ggg e年 m月 d日 → 令和 7年 7月 16日
gg e.m.d → 令 7.7.16
g e/m/d → R 7/7/16
ggge"年度" → 令和7年度
西暦のカスタム書式コード
基本的な書式記号
- yyyy:4桁の年(2025)
- yy:2桁の年(25)
- m:月(1~12)
- mm:月(01~12)
- d:日(1~31)
- dd:日(01~31)
実用的な書式例
yyyy年m月d日 → 2025年7月16日
yyyy/mm/dd → 2025/07/16
yyyy-mm-dd → 2025-07-16
yy.m.d → 25.7.16
【応用編】TEXT関数を使った文字列変換

TEXT関数の基本
構文と使用方法
基本構文
=TEXT(値, 表示形式)
パラメータ
- 値:変換したい日付データ
- 表示形式:出力したい書式(ダブルクォーテーションで囲む)
和暦への変換例
基本的な和暦変換
=TEXT(A1,"ggge年m月d日") → 令和7年7月16日
=TEXT(A1,"ggg e年m月d日") → 令和 7年7月16日
=TEXT(A1,"gg e/m/d") → 令 7/7/16
=TEXT(A1,"ge.m.d") → R7.7.16
年度表記の変換
=TEXT(A1,"ggge年度") → 令和7年度
=TEXT(A1,"ggge") & "年度" → 令和7年度
西暦への変換例
基本的な西暦変換
=TEXT(A1,"yyyy年m月d日") → 2025年7月16日
=TEXT(A1,"yyyy/mm/dd") → 2025/07/16
=TEXT(A1,"yyyy-mm-dd") → 2025-07-16
=TEXT(A1,"yy/m/d") → 25/7/16
文字列結合での活用
他のテキストとの組み合わせ
契約書での使用例
="契約締結日:" & TEXT(A1,"ggge年m月d日")
→ 契約締結日:令和7年7月16日
="有効期限:" & TEXT(A1,"yyyy年mm月dd日") & "まで"
→ 有効期限:2025年07月16日まで
請求書での使用例
="請求書発行日 " & TEXT(TODAY(),"ggge年m月d日")
→ 請求書発行日 令和7年7月16日
="Payment Due: " & TEXT(A1,"mmmm d, yyyy")
→ Payment Due: July 16, 2025
【高度な活用】条件付き変換と略記形式
元号の自動判定
IF関数を使った元号の判定
元号の自動切り替え
=IF(A1>=DATE(2019,5,1),"令和"&(YEAR(A1)-2018),
IF(A1>=DATE(1989,1,8),"平成"&(YEAR(A1)-1988),
"昭和"&(YEAR(A1)-1925)))
より詳細な条件分岐
=IF(A1>=DATE(2019,5,1),"令和"&(YEAR(A1)-2018)&"年",
IF(A1>=DATE(1989,1,8),"平成"&(YEAR(A1)-1988)&"年",
IF(A1>=DATE(1926,12,25),"昭和"&(YEAR(A1)-1925)&"年",
"明治"&(YEAR(A1)-1867)&"年")))
略記形式の作成
アルファベット略記
R、H、S形式
=IF(A1>=DATE(2019,5,1),"R"&(YEAR(A1)-2018),
IF(A1>=DATE(1989,1,8),"H"&(YEAR(A1)-1988),
"S"&(YEAR(A1)-1925)))
実用例
# 社員番号の作成
="EMP" & TEXT(A1,"R00") & "001" → EMPR07001
# ファイル名の作成
="Report_" & TEXT(TODAY(),"R00_mm_dd") & ".xlsx"
→ Report_R07_07_16.xlsx
複雑な条件での変換
年度の考慮
会計年度での変換
=IF(MONTH(A1)>=4,
TEXT(A1,"ggge年度"),
TEXT(DATE(YEAR(A1)-1,4,1),"ggge年度"))
学校年度での変換
=IF(MONTH(A1)>=4,
"令和" & (YEAR(A1)-2018) & "年度",
"令和" & (YEAR(A1)-2019) & "年度")
【実践例】業務での具体的な活用

人事・総務での活用
従業員データベース
入社日の和暦表示
A列 | B列 | C列 |
---|---|---|
氏名 | 入社日(西暦) | 入社日(和暦) |
田中太郎 | 2020/4/1 | =TEXT(B2,”ggge年m月d日”) |
佐藤花子 | 2018/10/15 | =TEXT(B3,”ggge年m月d日”) |
結果
田中太郎:令和2年4月1日
佐藤花子:平成30年10月15日
年齢計算での和暦活用
生年月日から年齢と和暦表示
# 年齢計算
=DATEDIF(B2,TODAY(),"Y")
# 生年月日の和暦表示
=TEXT(B2,"ggge年m月d日") & "生"
# 結果例
昭和55年3月20日生(45歳)
契約・法務での活用
契約書の日付管理
契約期間の表示
# 契約開始日
="契約期間:" & TEXT(B2,"ggge年m月d日") & "から"
# 契約終了日
=TEXT(C2,"ggge年m月d日") & "まで"
# 組み合わせ
="契約期間:" & TEXT(B2,"ggge年m月d日") & "〜" & TEXT(C2,"ggge年m月d日")
法定文書での年月日表記
官公庁提出書類
# 申請日
="申請日 " & TEXT(TODAY(),"ggge年m月d日")
# 事業年度
="対象事業年度 " & TEXT(A2,"ggge年度")
# 期限表示
="提出期限:" & TEXT(B2,"ggge年m月d日") & "必着"
学校・教育での活用
学籍管理
学生情報の管理
# 入学年度
=TEXT(B2,"ggge年度入学")
# 卒業予定年度
=TEXT(DATE(YEAR(B2)+4,3,31),"ggge年度卒業予定")
# 学年表示
="令和" & (YEAR(TODAY())-YEAR(B2)+1) & "年生"
成績表での活用
成績表のヘッダー
="成績表(" & TEXT(DATE(YEAR(TODAY()),4,1),"ggge年度") & ")"
→ 成績表(令和7年度)
="評価期間:" & TEXT(A2,"ggge年m月") & "〜" & TEXT(B2,"ggge年m月")
→ 評価期間:令和7年4月〜令和7年7月
【データ変換】大量データの一括変換
既存データの変換
西暦データを和暦に一括変換
方法1:書式設定による変換
- 対象範囲を選択
- Ctrl+1でセルの書式設定を開く
- 「日付」→「和暦」を選択
- 適用
方法2:関数による変換
# 隣の列に和暦を作成
=TEXT(A2,"ggge年m月d日")
# 値のみコピーして元の列に貼り付け
1. 数式をコピー
2. 「形式を選択して貼り付け」→「値」
3. 元の列を削除
混在データの整理
和暦・西暦が混在している場合
データの判定と統一
# 和暦か西暦かを判定
=IF(ISNUMBER(SEARCH("令和",A2)),"和暦",
IF(ISNUMBER(SEARCH("平成",A2)),"和暦",
IF(ISNUMBER(SEARCH("昭和",A2)),"和暦","西暦")))
# 統一された西暦に変換
=IF(B2="和暦",DATEVALUE(A2),A2)
VBAによる自動変換
高速一括変換マクロ
Sub ConvertToJapaneseEra()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Set ws = ActiveSheet
Set rng = Selection
For Each cell In rng
If IsDate(cell.Value) Then
cell.NumberFormat = "ggge年m月d日"
End If
Next cell
MsgBox "和暦への変換が完了しました"
End Sub
カスタム変換関数
Function ToJapaneseEra(dateValue As Date) As String
If dateValue >= DateSerial(2019, 5, 1) Then
ToJapaneseEra = "令和" & (Year(dateValue) - 2018) & "年" & Month(dateValue) & "月" & Day(dateValue) & "日"
ElseIf dateValue >= DateSerial(1989, 1, 8) Then
ToJapaneseEra = "平成" & (Year(dateValue) - 1988) & "年" & Month(dateValue) & "月" & Day(dateValue) & "日"
Else
ToJapaneseEra = "昭和" & (Year(dateValue) - 1925) & "年" & Month(dateValue) & "月" & Day(dateValue) & "日"
End If
End Function
【トラブルシューティング】よくある問題と解決策

表示がおかしくなる問題
症状1:「#####」が表示される
原因
- 列幅が狭すぎて表示しきれない
解決方法
1. 列幅を広げる
2. 列境界をダブルクリックして自動調整
3. 表示形式を短縮形に変更
症状2:日付として認識されない
原因
- データが文字列として入力されている
- 日付形式が正しくない
解決方法
# DATEVALUE関数で日付に変換
=DATEVALUE(A1)
# TEXT関数で強制的に日付として扱う
=TEXT(DATEVALUE(A1),"ggge年m月d日")
計算エラーの対処
元号年の計算間違い
問題例
令和5年 = 2023年
間違い:令和5年 = 2024年(計算ミス)
正しい計算式
# 令和年の計算
=YEAR(A1) - 2018
# 平成年の計算
=YEAR(A1) - 1988
# 昭和年の計算
=YEAR(A1) - 1925
元号切り替わり時の処理
問題
- 元号の切り替わり日時での処理が正しくない
解決方法
# 正確な元号判定
=IF(A1>=DATE(2019,5,1),"令和",
IF(A1>=DATE(1989,1,8),"平成","昭和"))
データの整合性確保
入力規則での制限
正しい日付形式の強制
データの入力規則:
- 入力値の種類:日付
- データ:次の値の間
- 開始日:1900/1/1
- 終了日:2050/12/31
カスタムバリデーション
# 和暦入力の検証
=AND(LEN(A1)>0,ISNUMBER(DATEVALUE(A1)))
【応用テクニック】さらなる活用方法
条件付き書式との組み合わせ
元号による色分け
設定方法
- 対象範囲を選択
- 条件付き書式→新しいルール
- 数式を使用してセルを書式設定
条件例
# 令和の日付を青色に
=TEXT($A1,"g")="R"
# 平成の日付を緑色に
=TEXT($A1,"g")="H"
# 昭和の日付を黄色に
=TEXT($A1,"g")="S"
グラフでの活用
時系列グラフの軸ラベル
横軸を和暦表示
- グラフを選択
- 横軸を右クリック→軸の書式設定
- 表示形式→ユーザー定義
- 書式コード:ggge
印刷での活用
ヘッダー・フッターでの自動日付
印刷時の自動日付挿入
ヘッダー設定:
印刷日:&[日付]を和暦で表示
→ 印刷日:令和7年7月16日
カスタムヘッダー
&"印刷日:"&TEXT(TODAY(),"ggge年m月d日")
まとめ
Excelでの和暦・西暦変換は、日本のビジネスシーンにおいて必須のスキルです。適切な方法を選択することで、効率的で正確なデータ管理が実現できます。
変換方法の使い分け
表示のみ変更したい場合
- セルの書式設定:最も簡単で確実
- カスタム表示形式:細かい調整が可能
- データの整合性:計算やソートに影響なし
文字列として出力したい場合
- TEXT関数:他の文字列との結合が容易
- 柔軟な書式設定:様々な表示形式に対応
- 動的な変換:条件に応じた変換が可能
大量データの処理
- 一括書式変更:高速で効率的
- VBAマクロ:複雑な処理の自動化
- 関数の組み合わせ:条件付き変換
実装時のポイント
データの正確性
- 元号の切り替わり日時:正確な日付での判定
- 年度の概念:4月始まりの考慮
- エラーハンドリング:無効な日付の処理
ユーザビリティ
- 分かりやすい表示:読みやすい書式の選択
- 一貫性:ファイル全体での統一
- メンテナンス性:後からの変更が容易
パフォーマンス
- 計算負荷:複雑な数式は最小限に
- データサイズ:不要な変換は避ける
- 更新頻度:動的変換の最適化
コメント