見出し画像

独自関数(オリジナル関数)元号変換【Googleスプレッドシート】【GAS】【関数】

※こちらの記事で利用するスクリプトには簡単ですが「配列」が含まれます。

前回、元号の変換を行う関数を作成しました。
西暦 ⇒ 令和
西暦 ⇒ 平成
平成 ⇒ 西暦
平成 ⇒ 令和
令和 ⇒ 西暦
令和 ⇒ 平成
計6パターンです。

function seirekiworeiwa(a) {
  x = a-2000-18
  return ("令和"+ x +"年")   
}//令和〇年 成功
function seirekiwoheisei(a) {
  x = a-2000+12
  return ("平成"+ x +"年")   
}
function heiseiwoseireki(a) {
  x = a+2000-12
  return ("西暦"+ x +"年")   
}
function heiseiworeiwa(a) {
  x = a-30
  return ("令和"+ x +"年")   
}
function reiwawoseireki(a) {
  x = a+2000+18
  return ("西暦"+ x +"年")   
}
function reiwawoheisei(a) {
  x = a+30
  return ("平成"+ x +"年")   
}

使い分けるのも実用的ではありません。
「元号」「年度」を一つの関数で処理したいです。

西暦 ⇒ 令和・平成 どっちも表示させる

まずはごめんなさい。配列を使いました。
一つのセルに関数を入れて、複数セルに情報を反映させるには配列が必要です。といっても、簡単なものだけですのでご容赦ください。
それがこちらです。

function seireki(a) {
  r = a -2000-18
  h = a -2000+12
  x = [["令和"+r+"年","平成"+h+"年"]]
  return x   
}

returan の指定を、二つにしました。
[ [ 〇 , 〇 ] ] その形式を、こういう風にしてます。それが配列です。
その結果です。

西暦、平成、令和 で処理を分ける

A列が「西暦」であれば、seireki を使いたい、
   「平成」であれば、heisei を使いたい、
  「令和」であれば、reiwa を使いたい、です。
条件分岐というやつです。
gengo ( a , b ) {
if ( a が西暦のとき ){seireki(b) }
if else ( a が平成のとき ) { heisei(b) }
それ以外は reiwa(b) }
という風にします。
スクリプトです。

function gengo(a,b){

  if (a=="西暦"){  return seireki(b) }
  else if(a=="平成"){ return heisei(b) }
                    return reiwa(b)

}

配列・関数内で別の関数を動かす・else if ちょっと複雑なのを合わせましたが、少しプログラム的になったのではないでしょうか。

シートです。

どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。