お仕事おつにゃッス🐈
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
元号から西暦に変換するのは、非常に面倒くさくないですか?
この記事ではそのお悩みを、コピペOKのGoogle Apps Scriptのコードで解決します。

- 元号から西暦に自動で変換したい
- SUM関数のように気軽に使えるものが欲しい
- プログラミングでJavaScriptを学んだけど、何を作っていいかわからない
誰でも無料で簡単にできますので、お気軽に学んでいきましょう!
タップできる目次
元号から西暦に変換するイメージ

元号から西暦に変換する自作関数をプログラミングします。
引数に元号と年を入力するだけで、計算に苦労する西暦の変換を一瞬で終わらせます。
例えば、昭和54年を変換する場合は自作関数を入力すると1979年を出力することになります。
したがって、計算時間の減少とミスの減少につながって作業時間の効率化を図れます。
元号から西暦に変換するには?

スプレッドシートには西暦を変換する機能はないので、自作のコードを作る必要があります。
元号から西暦に変換する方法は簡単な計算で求めることができます。
計算方法はえいすう総研様の「元号」と「西暦」をパパっと変換!の記事を参考にしました。
明治は1868年に始まりました。この年が明治元年つまり明治1年になります。1869年は明治2年、1870年は明治3年となり、元号と西暦の差は常に「67」となります。したがって明治の場合、元号の数字に67を足せば西暦が求められるし、西暦から67を引けば元号が求められます。
「元号」と「西暦」をパパっと変換! - えいすう総研
例えば、明治時代の場合は67を基準にすると、明治元年の西暦は「67 + 1 = 68」と計算して1868年になることがわかります。
この方法を応用し、GASで元号から西暦に変更できるコードを作っていきます。
元号から西暦に変換する準備
Google Apps Scriptで元号を西暦に変換する準備を行います。必要なファイルは1つです。
必要なファイル
- Google スプレッドシート ・・・ リストの作成 & サンプルコードの貼り付け
スプレッドシートの作成
顧客の生まれた年を登録するGoogle スプレッドシートを作成します。
A列には「元号」、B列に「生まれた年」を記入します。また、C列目には元号から変換した西暦を記入します。スプレッドシートの準備は以上です。

サンプルコードを貼り付ける場所
サンプルコードはGoogle スプレッドシートにコピペ。
上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。

元号から西暦に変換するサンプルコード
SUM関数やCOUNT関数のように、セル内に記入して西暦に変換する関数をGoogle Apps Scriptで作成します。
解説の項目
- changeYear | 元号から西暦に変換する自作関数
- サンプルコード
- A, 計算する元号の数字を定義
- B, 値が「元」の場合は「1」に変換
- C, 値と一致する条件があれば西暦に変換
changeYear | 元号から西暦に変換する自作関数

この記事で作成する自作関数「changeYear」の概要です。
引数2つ入れてセル内に記入すると自動で西暦に変換します。
例として明治4年の西暦を求める場合はvalueに「明治」、numに「4」を引数に入れると「1871」を出力します。
サンプルコード
右上にあるマークを押すとコードのコピペを一瞬でできます。また、コード内で文頭にアルファベットが付いているコメントごとに、詳細を説明していきます。
function changeYear(value, num){
//A,計算する元号の数字を定義
const MEIJI = 1867;
const TAISHO = 1911;
const SHOWA = 1925;
const HEISEI = 1988;
const REIWA = 2018;
//B,値が「元」の場合は「1」に変換
if(num == "元"){ //セル内に元年の「元」が記入されている場合、1に変換
num = 1;
}
//C,値と一致する条件があれば西暦に変換
switch(value){
case "明治":
return MEIJI + num;
break;
case "大正":
return TAISHO + num;
break;
case "昭和":
return SHOWA + num;
break;
case "平成":
return HEISEI + num;
break;
case "令和":
return REIWA + num;
break;
default:
return "この元号は登録されていません。";
}
}
A, 計算する元号の数字を定義
//A,元号の番号を定義
const MEIJI = 1867;
const TAISHO = 1911;
const SHOWA = 1925;
const HEISEI = 1988;
const REIWA = 2018;
計算の元になる明治から令和までの元号を登録します。
明治元年(1868年)を例にすると、元号と西暦の差の基準を足して「67 + 1 = 68」なので「元年の西暦 - 1」で計算の基準を作ります。
他の元号も同様に、それぞれの元年を西暦にした数字から1を引いたものを基準にします。
B, 値が「元」の場合は「1」に変換
//B,「元」の場合は「1」に変換
if(num == "元"){ //セル内に元年の「元」が記入されている場合、1に変換
num = 1;
}
セル内の値が元年の「元」の場合、自動で変数numの値を「1」に変換します。
C, 値と一致する条件があれば西暦に変換
//C,値と一致する条件があれば西暦に変換
switch(value){
case "明治":
return MEIJI + num;
break;
case "大正":
return TAISHO + num;
break;
case "昭和":
return SHOWA + num;
break;
case "平成":
return HEISEI + num;
break;
case "令和":
return REIWA + num;
break;
default:
return "この元号は登録されていません。";
}
switch文を使い、条件にあった値があれば、それに合わせた処理を行います。
valueの値が「明治」の場合、定数のMEIJIとnumを足して西暦を求めます。
もし、登録していない元号の場合はdefault処理します。
コードの説明は以上です。
元号から西暦に変換するテスト
実際に元号を西暦に変換します。
C列に関数を記入します。関数内の第一引数は元号なので「A2」、第二引数は生まれた年なので「B2」を記入します。

元号から西暦に変換しました。昭和54年は1979年なので一致しています。

全ての行に関数を記入します。
登録した元号はすべて西暦に変換できています。
11行目の「慶應」のような登録していない元号はエラーメッセージが表示されます。

【便利】GASで日付や時間を操作するコード一覧
この記事では、GASを使って元号を西暦に変換する方法を紹介しました。
GASには他にも日付や時間を自動取得する方法があり業務効率化を実現できます。
誰でも簡単に無料でできるので、ぜひご活用ください。
もちろん、コピペOKです。
-
【入門】GASで当日の日付を「年月日」で取得
続きを見る
-
【3分で簡単】GASで現在時刻をリアルタイムで取得
続きを見る
おわりに | GASで市場価値を高めるには
以上、GASでスプレッドシートで元号から西暦に変換する方法でした。
そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。
GASでさらに業務効率化したい場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます。
プログラミング未経験者にもわかりやすく解説しています。

次回の記事もご期待ください!