Googleスプレッドシートで和暦から西暦に変換|元年にも対応した数式

前回の記事では、Googleスプレッドシートで 西暦を和暦に変換する数式 をご紹介しました。

今回は、和暦で入力された日付を、西暦(YYYY/MM/DD)に変換する数式 をご紹介します。

たとえば、「令和7年1月1日」を「2025/01/01」の日付形式で出力できます。

目次

和暦→西暦に変換する数式

  • 和暦の日付を、西暦(YYYY/MM/DD)の形式に変換
  • 「元年」も正しく処理
  • 令和・平成・昭和・大正までの和暦を対象

以下の数式をセルに直接入力して使えますが、長い数式となります。

そのため、後述の名前付き関数として登録すると使いやすくなります。

西暦に変換する数式  (A1セルの和暦を変換する場合)

=IF(LEFT(A1,2)="令和", DATE(IF(MID(A1,3,1)="元", 2019, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 2018), VALUE(MID(A1,SEARCH("年",A1)+1,SEARCH("月",A1)-SEARCH("年",A1)-1)), VALUE(MID(A1,SEARCH("月",A1)+1,SEARCH("日",A1)-SEARCH("月",A1)-1))),
 IF(LEFT(A1,2)="平成", DATE(IF(MID(A1,3,1)="元", 1989, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1988), VALUE(MID(A1,SEARCH("年",A1)+1,SEARCH("月",A1)-SEARCH("年",A1)-1)), VALUE(MID(A1,SEARCH("月",A1)+1,SEARCH("日",A1)-SEARCH("月",A1)-1))),
 IF(LEFT(A1,2)="昭和", DATE(IF(MID(A1,3,1)="元", 1926, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1925), VALUE(MID(A1,SEARCH("年",A1)+1,SEARCH("月",A1)-SEARCH("年",A1)-1)), VALUE(MID(A1,SEARCH("月",A1)+1,SEARCH("日",A1)-SEARCH("月",A1)-1))),
 IF(LEFT(A1,2)="大正", DATE(IF(MID(A1,3,1)="元", 1912, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1911), VALUE(MID(A1,SEARCH("年",A1)+1,SEARCH("月",A1)-SEARCH("年",A1)-1)), VALUE(MID(A1,SEARCH("月",A1)+1,SEARCH("日",A1)-SEARCH("月",A1)-1))),
 "計算外"))))

数式の説明

元号の確認
IF(LEFT(A1,2)="令和", ... )
IF(LEFT(A1,2)="平成", ... )
IF(LEFT(A1,2)="昭和", ... )
IF(LEFT(A1,2)="対象", ... )
  • LEFT(A1,2)「令和」「平成」「昭和」「大正」 のどの元号に該当するかを判定します。
  • IF 関数を使い、それぞれに対応する処理を適用します。
日付形式への変換
DATE(西暦, 月, 日)
  • この関数で、和暦の日付を Googleスプレッドシートの「日付データ」として認識される形式 に変換します。
年の変換
IF(MID(A1,3,1)="元", 2019, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 2018)

IF(MID(A1,3,1)="元", 1989, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1988)

IF(MID(A1,3,1)="元", 1926, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1925)

IF(MID(A1,3,1)="元", 1912, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1911)
  • 「元年」の場合、開始年(2019, 1989, 1926, 1912)を適用します。
  • 通常の年の場合、「元年」の処理を除いた上で西暦に変換します。
  • VALUE(MID(...)) で「〇年」の部分を数値化 し、それぞれの開始年を加算します。
    • 令和: +2018
    • 平成: +1988
    • 昭和: +1925
    • 大正: +1911
月の取得
VALUE(MID(A1,SEARCH("年",A1)+1,SEARCH("月",A1)-SEARCH("年",A1)-1))
  • "年" の次の位置から "月" の前までの数値を取得します。
日の取得
VALUE(MID(A1,SEARCH("月",A1)+1,SEARCH("日",A1)-SEARCH("月",A1)-1))
  • "月" の次の位置から "日" の前までの数値を取得します。
明治以前(計算外)
"計算外"
  • 明治以前の 1912年7月29日以前の和暦データは除外 として、 "計算外" を表示します。
(参考) 年表示のみの数式

年表示のみの数式

=IF(LEFT(A1,2)="令和", IF(MID(A1,3,1)="元", 2019, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 2018),
IF(LEFT(A1,2)="平成", IF(MID(A1,3,1)="元", 1989, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1988),
IF(LEFT(A1,2)="昭和", IF(MID(A1,3,1)="元", 1926, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1925),
IF(LEFT(A1,2)="大正", IF(MID(A1,3,1)="元", 1912, VALUE(MID(A1,3,SEARCH("年",A1)-3)) + 1911), "変換不可"))))

年月日までを表示させる数式と比べると、やや短い数式になります。

「名前付き関数」を設定してカンタンに西暦に変換

数式を繰り返し使う場合は、「名前付き関数」に設定すると、簡単に利用できます。

名前付き関数の設定方法

STEP
[データ] → [名前付き関数] を選択

上部メニューから「データ」ー「名前付き関数」を選択します。

(右クリックメニューからでも可)

STEP
「新しい関数を追加」 をクリック

画面右側に表示される名前付き関数から「新しい関数を追加」をクリックします。

STEP
関数名を入力

関数名と説明に自分が分かりやすい内容を入力します。

関数名: 西暦(好きな名前でOK)

説 明:指定した和暦の日付を西暦に変換します

STEP
引数名を入力

引数名(関数に渡すデータ)を入力します。

引数名:日付(好きな名前でOK)

STEP
数式を入力

「数式の定義」に以下の数式を貼り付けます。

=IF(LEFT(日付,2)="令和", DATE(IF(MID(日付,3,1)="元", 2019, VALUE(MID(日付,3,SEARCH("年",日付)-3)) + 2018), VALUE(MID(日付,SEARCH("年",日付)+1,SEARCH("月",日付)-SEARCH("年",日付)-1)), VALUE(MID(日付,SEARCH("月",日付)+1,SEARCH("日",日付)-SEARCH("月",日付)-1))),
 IF(LEFT(日付,2)="平成", DATE(IF(MID(日付,3,1)="元", 1989, VALUE(MID(日付,3,SEARCH("年",日付)-3)) + 1988), VALUE(MID(日付,SEARCH("年",日付)+1,SEARCH("月",日付)-SEARCH("年",日付)-1)), VALUE(MID(日付,SEARCH("月",日付)+1,SEARCH("日",日付)-SEARCH("月",日付)-1))),
 IF(LEFT(日付,2)="昭和", DATE(IF(MID(日付,3,1)="元", 1926, VALUE(MID(日付,3,SEARCH("年",日付)-3)) + 1925), VALUE(MID(日付,SEARCH("年",日付)+1,SEARCH("月",日付)-SEARCH("年",日付)-1)), VALUE(MID(日付,SEARCH("月",日付)+1,SEARCH("日",日付)-SEARCH("月",日付)-1))),
 IF(LEFT(日付,2)="大正", DATE(IF(MID(日付,3,1)="元", 1912, VALUE(MID(日付,3,SEARCH("年",日付)-3)) + 1911), VALUE(MID(日付,SEARCH("年",日付)+1,SEARCH("月",日付)-SEARCH("年",日付)-1)), VALUE(MID(日付,SEARCH("月",日付)+1,SEARCH("日",日付)-SEARCH("月",日付)-1))),
 "変換不可"))))
STEP
作成をクリックして完成

「作成」をクリックします。

関数が表示されれば作成完了です。

名前付き関数の使い方

該当のセルに以下の数式を入力します。

(A1 セルを参照する場合)

=西暦(A1)

A1セルにあった和暦の日付を西暦に変換して表示されます。

複数のセルを一括で西暦に変換する場合はアレイフォーミュラ関数が便利です。

(A1からA8の和暦を一括変換する場合)

=ARRAYFORMULA(西暦(A1:A8))

まとめ

Googleスプレッドシートの場合、西暦→和暦の変換と同じように、和暦→西暦も数式を使うことで変換できます。

西暦→和暦 変換の数式と合わせてご活用ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次