和暦を西暦に変換する関数です。例えば、昭和5年11月18日を文字列「S5.11.18」と記述しているときに、「1930年11月18日」に相当するDate型に変換します。
Google Sheets(Googleスプレッドシート)で、拡張機能からApps Scriptを開き、以下の関数を記述します。
function getYear_(nengo, japaneseYear) {
const startYears = {
M: 1868, // 明治1年 1868年
T: 1912, // 大正1年 1912年
S: 1926, // 昭和1年 1926年
H: 1989, // 平成1年 1989年
R: 2019, // 令和1年 2019年
}
return startYears[nengo] - 1 + Number(japaneseYear);
}
function SEIREKI(value) {
const [japaneseYear, month, date] = value.split('.');
const m = japaneseYear.match(/(M|T|S|H|R)(\d+)/);
const year = getYear_(m[1], m[2]);
return new Date(year, Number(month) - 1, Number(date));
}
スプレッドシートのセルA1に和暦を記述しているなら、セルB1に=SEIREKI(A1)
と記述すれば、西暦を得られます。
ちなみに、生年月日から年齢を計算するには、=DATEDIF(B1,TODAY(),"Y")
です。
エラーの場合に空白にしたいなら、=IFERROR(DATEDIF(B1,TODAY(),"Y"))
です。