Excelで和暦と西暦を変換する方法|年号を自動で切り替える簡単テク

Excel

「提出書類は和暦指定なのに、データは西暦…」
「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(同じシリアル値)

メリット

  • 内部データは同じなので計算やソートが正確
  • 表示形式の変更だけで和暦・西暦を切り替え可能
  • データの整合性が保たれる

【実践編】表示形式で和暦⇔西暦を切り替える

最も簡単な方法:セルの書式設定

基本的な手順

西暦から和暦への変換

  1. 対象のセルまたは範囲を選択
  2. 右クリック→「セルの書式設定」
  3. 「表示形式」タブを選択
  4. 「分類」で「日付」を選択
  5. 「カレンダーの種類」で「和暦」を選択
  6. 希望する表示形式を選択
  7. 「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

カスタム表示形式の作成

ユーザー定義での詳細設定

アクセス方法

  1. セルの書式設定を開く
  2. 「分類」で「ユーザー定義」を選択
  3. 「種類」欄で書式コードを入力

和暦のカスタム書式コード

基本的な書式記号

  • 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:書式設定による変換

  1. 対象範囲を選択
  2. Ctrl+1でセルの書式設定を開く
  3. 「日付」→「和暦」を選択
  4. 適用

方法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)))

【応用テクニック】さらなる活用方法

条件付き書式との組み合わせ

元号による色分け

設定方法

  1. 対象範囲を選択
  2. 条件付き書式→新しいルール
  3. 数式を使用してセルを書式設定

条件例

# 令和の日付を青色に
=TEXT($A1,"g")="R"

# 平成の日付を緑色に
=TEXT($A1,"g")="H"

# 昭和の日付を黄色に
=TEXT($A1,"g")="S"

グラフでの活用

時系列グラフの軸ラベル

横軸を和暦表示

  1. グラフを選択
  2. 横軸を右クリック→軸の書式設定
  3. 表示形式→ユーザー定義
  4. 書式コード:ggge

印刷での活用

ヘッダー・フッターでの自動日付

印刷時の自動日付挿入

ヘッダー設定:
印刷日:&[日付]を和暦で表示
→ 印刷日:令和7年7月16日

カスタムヘッダー

&"印刷日:"&TEXT(TODAY(),"ggge年m月d日")

まとめ

Excelでの和暦・西暦変換は、日本のビジネスシーンにおいて必須のスキルです。適切な方法を選択することで、効率的で正確なデータ管理が実現できます。

変換方法の使い分け

表示のみ変更したい場合

  • セルの書式設定:最も簡単で確実
  • カスタム表示形式:細かい調整が可能
  • データの整合性:計算やソートに影響なし

文字列として出力したい場合

  • TEXT関数:他の文字列との結合が容易
  • 柔軟な書式設定:様々な表示形式に対応
  • 動的な変換:条件に応じた変換が可能

大量データの処理

  • 一括書式変更:高速で効率的
  • VBAマクロ:複雑な処理の自動化
  • 関数の組み合わせ:条件付き変換

実装時のポイント

データの正確性

  1. 元号の切り替わり日時:正確な日付での判定
  2. 年度の概念:4月始まりの考慮
  3. エラーハンドリング:無効な日付の処理

ユーザビリティ

  1. 分かりやすい表示:読みやすい書式の選択
  2. 一貫性:ファイル全体での統一
  3. メンテナンス性:後からの変更が容易

パフォーマンス

  1. 計算負荷:複雑な数式は最小限に
  2. データサイズ:不要な変換は避ける
  3. 更新頻度:動的変換の最適化

コメント

タイトルとURLをコピーしました