エクセルで日付データを扱っていると、和暦と西暦の変換が必要になる場面は頻繁に訪れます。
官公庁への提出書類では和暦が必須、取引先からのデータは西暦、社内システムは和暦表示など、同じ日付データでも表示形式が異なる場合、変換作業に多くの時間を取られてしまいます。
一つずつ手作業で変換していては効率が悪く、入力ミスのリスクも高まります。特に「令和5年」を「2023年」に、あるいは「2024年」を「令和6年」に変換する作業が大量にあると、作業負担は相当なものになります。
エクセルには和暦と西暦を相互に変換する機能が複数用意されています。
表示形式を変更するだけの方法、関数を使った変換、TEXT関数による柔軟な表示など、それぞれに特徴があり、状況に応じて使い分けることで効率的に作業できます。
本記事では、和暦と西暦の変換方法を詳しく解説し、変換できない場合の原因と対処法、年のみ・年月のみの変換テクニックまで幅広く紹介します。
日付データの変換作業を効率化したい方は、ぜひ最後までお読みください。
ポイントは
・表示形式の変更なら元データはそのままで見た目だけ変換できる
・TEXT関数を使えば和暦・西暦を自由な形式で表示可能
・文字列として入力された和暦はDATE関数で日付データに変換が必要
です。
それでは詳しく見ていきましょう。
表示形式で和暦と西暦を切り替える基本
まずは、最もシンプルで確実な表示形式を使った変換方法を確認していきます。
セルの書式設定から表示形式を変更
エクセルで日付を入力すると、内部的にはシリアル値という数値で管理されています。
表示形式を変更すれば、元のデータを変えずに和暦・西暦の表示を切り替えられます。これが最も基本的で安全な方法です。
変換したいセルを選択して右クリックし、「セルの書式設定」を開きます。「表示形式」タブの「分類」から「日付」を選択すると、右側に様々な日付形式のサンプルが表示されます。この中から和暦の形式(例:「平成24年3月14日」)を選択すればOKです。
西暦から和暦に変換する場合も、和暦から西暦に変換する場合も、同じ手順で表示形式を選択するだけで完了します。カレンダーの種類として「和暦」「西暦」が選べるようになっており、それぞれに対応した表示形式が用意されています。
表示形式変更の手順
西暦表示
→ 元データ
和暦表示
→ 表示形式変更
ユーザー定義で自由な形式を作成
標準の表示形式では対応できない場合、ユーザー定義を使えば自由な形式を作成できます。
「セルの書式設定」で「ユーザー定義」を選択し、「種類」の欄に書式コードを入力します。和暦の場合は「ggge”年”m”月”d”日”」のような形式で指定します。この「ggg」が元号を表し、「e」が年を表します。
例えば「令和6年11月18日」と表示したい場合は「ggge”年”m”月”d”日”」、「R6.11.18」のように略記したい場合は「gge.m.d」と入力します。西暦の場合は「yyyy”年”m”月”d”日”」で「2024年11月18日」となります。
| 書式コード | 表示例 | 用途 |
|---|---|---|
| ggge”年”m”月”d”日” | 令和6年11月18日 | 和暦のフル表示 |
| gge”年”m”月”d”日” | 令6年11月18日 | 和暦の短縮形 |
| gge.m.d | 令6.11.18 | 和暦の略記 |
| yyyy”年”m”月”d”日” | 2024年11月18日 | 西暦のフル表示 |
| yyyy/mm/dd | 2024/11/18 | 西暦の標準形式 |

書式設定、表示形式、ユーザー定義で対応の形式を入れましょう。


年のみ・年月のみの表示形式
書類によっては年だけ、または年月だけを表示したい場合があります。
ユーザー定義で「ggge”年”」とすれば年のみ、「ggge”年”m”月”」とすれば年月のみの表示ができます。西暦なら「yyyy”年”」や「yyyy”年”m”月”」という形式になります。
ただし、これはあくまで表示形式の変更であり、セル内部には完全な日付データ(年月日)が保持されています。計算や並べ替えでは完全な日付として扱われるため、データの整合性が保たれます。
| 表示内容 | 和暦の書式コード | 西暦の書式コード | 表示例(和暦) | 表示例(西暦) |
|---|---|---|---|---|
| 年のみ | ggge”年” | yyyy”年” | 令和6年 | 2024年 |
| 年月 | ggge”年”m”月” | yyyy”年”m”月” | 令和6年11月 | 2024年11月 |
| 年月日 | ggge”年”m”月”d”日” | yyyy”年”m”月”d”日” | 令和6年11月18日 | 2024年11月18日 |
表示形式を使った変換の最大のメリットは、元のデータが変更されないことです。
内部的には同じ日付データのまま、見た目だけが変わるため、計算式で参照している場合もエラーになりません。また、後から表示形式を戻せば元の表示に簡単に戻せます。
ただし、表示形式の変更はあくまで「見た目」の変更です。セルの値をコピーして他のアプリケーションに貼り付けると、元の形式で貼り付けられることがあります。完全に変換されたデータとして出力したい場合は、次に説明する関数を使った方法を選択しましょう。
TEXT関数で和暦・西暦を文字列に変換
続いては、関数を使って和暦と西暦を変換する方法を確認していきます。
TEXT関数の基本的な使い方
TEXT関数は、日付や数値を指定した表示形式の文字列に変換する関数です。
構文は「=TEXT(値,表示形式コード)」となります。第1引数に変換したい日付が入っているセルを指定し、第2引数に表示形式のコードを文字列として指定します。
例えば、A1セルに「2024/11/18」という日付が入っている場合、B1セルに「=TEXT(A1,”ggge年m月d日”)」と入力すれば「令和6年11月18日」という文字列が生成されます。西暦なら「=TEXT(A1,”yyyy年m月d日”)」で「2024年11月18日」となります。
| A列(元データ) | B列(数式) | 結果 |
|---|---|---|
| 2024/11/18 | =TEXT(A1,”ggge年m月d日”) | 令和6年11月18日 |
| 2024/11/18 | =TEXT(A1,”gge.m.d”) | 令6.11.18 |
| 2024/11/18 | =TEXT(A1,”yyyy/mm/dd”) | 2024/11/18 |
| 2024/11/18 | =TEXT(A1,”ggge年”) | 令和6年 |

年のみ・年月のみの変換
TEXT関数を使えば、年だけ、または年月だけを抽出して表示することも簡単です。
年のみを和暦で表示する場合は「=TEXT(A1,”ggge年”)」、西暦なら「=TEXT(A1,”yyyy年”)」とします。年月の場合は「=TEXT(A1,”ggge年m月”)」または「=TEXT(A1,”yyyy年m月”)」という形式になります。
数値だけを取り出したい場合は、「=TEXT(A1,”ggg e”)」とすれば「令和 6」のように元号と年が分かれて表示され、「=TEXT(A1,”e”)」だけなら「6」という数値のみになります。西暦の場合は「=TEXT(A1,”yyyy”)」で「2024」という4桁の数値が文字列として得られます。
TEXT関数の活用例
完全な和暦表示
=TEXT(A1,”ggge年m月d日”)
年月のみ表示
=TEXT(A1,”ggge年m月”)
年のみ表示
=TEXT(A1,”ggge年”)
複数セルに一括で変換する方法
TEXT関数で変換した数式は、オートフィル機能を使って下方向に簡単にコピーできます。
B1セルに「=TEXT(A1,”ggge年m月d日”)」という数式を入力したら、B1セルの右下角にマウスカーソルを合わせます。カーソルが黒い十字に変わったら、そのままダブルクリックするか、下にドラッグすることで、隣のA列にデータがある範囲まで自動的に数式がコピーされます。
数式として残したくない場合は、変換後のセル範囲を選択してコピーし、同じ場所に「値として貼り付け」を実行します。これにより数式が削除され、文字列データだけが残ります。
| 手順 | 操作内容 | 結果 |
|---|---|---|
| 1. 数式入力 | B1に=TEXT(A1,”ggge年m月d日”)と入力 | 1つのセルが変換される |
| 2. オートフィル | B1の右下角をダブルクリック | 下方向に数式がコピーされる |
| 3. 値として貼り付け | 範囲選択→コピー→値として貼り付け | 数式が文字列に変換される |
TEXT関数を使った変換の重要なポイントは、結果が文字列になることです。
表示形式の変更とは異なり、TEXT関数の結果は日付データではなく文字列データになります。そのため、変換後のデータを日付として計算に使用することはできません。あくまで「表示用」「出力用」のデータとして扱います。
逆に、文字列として出力したい場合にはTEXT関数が最適です。CSVファイルに出力する、他のシステムに取り込む、印刷物として使用するなど、日付計算が不要な場合はTEXT関数で変換したデータをそのまま使用できます。
和暦・西暦の変換ができない原因と対処法
変換がうまくいかない場合の主な原因と解決方法を確認していきます。
文字列として入力されている場合
最も多い原因は、日付が文字列として入力されていることです。
「令和6年11月18日」や「2024/11/18」と手入力した場合、エクセルが自動的に日付として認識することもありますが、全角文字が含まれている場合や特殊な形式の場合は文字列として扱われます。文字列の場合、表示形式を変更しても効果がありません。
文字列かどうかを確認するには、セルを選択して数式バーを見ます。左揃えで表示されている場合は文字列、右揃えの場合は日付(数値)です。また、セルの左上に緑色の三角マークが表示されることもあります。
文字列として入力された日付を日付データに変換するには、DATEVALUE関数を使用します。「=DATEVALUE(A1)」とすることで、A1セルの文字列を日付のシリアル値に変換できます。ただし、エクセルが認識できる形式(例:「2024/11/18」)である必要があります。
| 元データ(A列) | データ型 | 変換数式(B列) | 結果 |
|---|---|---|---|
| 2024/11/18 | 文字列 | =DATEVALUE(A1) | 45618(日付のシリアル値) |
| 2024年11月18日 | 文字列 | =DATEVALUE(A1) | 45618(日付のシリアル値) |
| 令和6年11月18日 | 文字列(和暦) | 別の方法が必要 | DATEVALUE関数では変換不可 |
和暦の文字列をDATE関数で変換
「令和6年11月18日」のような和暦の文字列は、DATEVALUEでは直接変換できないため、DATE関数と組み合わせる必要があります。
まず、文字列から年、月、日の各要素を抽出します。MID関数やFIND関数を使って「6」「11」「18」という数値を取り出し、和暦の年に対応する西暦の基準年(令和は2018を足す)を加算して、DATE関数で日付を作成します。
具体的には「=DATE(2018+VALUE(MID(A1,FIND(“年”,A1)-LEN(A1)+2,2)),VALUE(MID(A1,FIND(“月”,A1)-2,2)),VALUE(MID(A1,FIND(“日”,A1)-2,2)))」のような複雑な数式になりますが、これで文字列の和暦を日付データに変換できます。
和暦文字列の変換手順
和暦文字列から
年月日を抽出
和暦年を
西暦年に変換
DATE関数で
日付データ作成
その他のエラー原因
変換がうまくいかない他の原因として、日付の範囲外や不正な日付が入力されている場合があります。
エクセルで扱える日付の範囲は1900年1月1日から9999年12月31日までです。それ以前の日付や以降の日付は正しく処理できません。また、「2024/13/40」のような存在しない日付もエラーになります。
令和以前の和暦(平成、昭和など)を扱う場合も、元号に対応した基準年を正しく設定する必要があります。令和は2018年を基準、平成は1988年、昭和は1925年を足すことで西暦に変換できます。
| エラーの原因 | 症状 | 対処法 |
|---|---|---|
| 文字列として入力 | 表示形式が変更されない | DATEVALUE関数で変換 |
| 和暦の文字列 | DATEVALUEでエラー | 文字列解析とDATE関数の組み合わせ |
| 日付範囲外 | #VALUE!エラー | 対応範囲内の日付か確認 |
| 不正な日付 | #VALUE!エラー | 年月日の値が正しいか確認 |
| セルが空白 | 0や1900/1/1と表示 | IF関数で空白をチェック |
和暦と西暦の変換でトラブルが発生した場合、まずデータ型を確認することが重要です。
エクセルでは、日付は内部的にシリアル値という数値で管理されています。1900年1月1日を1として、1日ごとに1ずつ増えていく仕組みです。表示形式を変更しても、この内部値は変わりません。
一方、文字列として入力された日付は、見た目は日付でも内部的には文字データです。この場合、まず日付データに変換してから表示形式を変更する必要があります。データ型を正しく理解することで、ほとんどの変換トラブルは解決できます。
まとめ エクセルで和暦と西暦の変換する方法
エクセルで和暦と西暦を変換する方法をまとめると
・表示形式による変換:右クリック→「セルの書式設定」→「日付」から和暦・西暦を選択、ユーザー定義で「ggge年m月d日」(和暦)や「yyyy年m月d日」(西暦)を指定、元データは変更されず見た目だけ変わる
・TEXT関数による変換:「=TEXT(A1,”ggge年m月d日”)」で和暦の文字列、「=TEXT(A1,”yyyy年m月d日”)」で西暦の文字列に変換、年のみは「ggge年」や「yyyy年」、年月のみは「ggge年m月」や「yyyy年m月」を指定
・文字列の変換:DATEVALUE関数で西暦の文字列を日付に変換、和暦の文字列はMID関数などで分解してDATE関数で日付を作成
・エラー対処:文字列として入力されている場合はDATEVALUE関数で変換、データ型を数値(日付)に変更してから表示形式を設定
これらの方法を使い分けることで、効率的に和暦と西暦を変換できます。
表示形式の変更は元データを保持したまま見た目だけ変えられるため、計算や並べ替えにも影響しません。TEXT関数は文字列として出力したい場合に最適です。
ただし、最も重要なのはデータ型を正しく理解することです。
日付データとして認識されているかを確認し、文字列の場合は適切な関数で日付に変換してから表示形式を変更するというステップを踏めば、ほとんどの変換作業はスムーズに進められます。
エクセルの和暦・西暦変換機能を適切に活用して、日付データの管理と表示を効率化していきましょう!