【GAS】Googleスプレッドシートの関数を使って和暦を西暦に変換しよう。【令和】

Shibuya Center Town in the rain

 

こんにちは、去年の2018年の春までITに関しての知識が3歳だった書川(かきかわ)です。

 

学校でも、アパレルブランドで働いていた時でも、表計算ソフトといえば「エクセル」でした。

それしか知る事のない環境で生きてきたんです。

 

IT企業で勤め始めてからスプレッドシートに出会ったんですけど、

ものすごく感動したのを覚えています。

Google大好き人間になっちゃいました。

 

 

前提としてエクセルでは、セルの書式設定により一発で変換を出来るようになっています。

最新のバージョンでは令和の変換にも対応しているという情報もありますが定かではありません。

Calendar conversion of Excel

 

この記事の結論です。

 

スプレッドシートで和暦を西暦に変換するには3つの関数を使うだけです。

以下の関数の組合せを使うことで、簡単に和暦を西暦に変換できてみんなのヒーローでになれます。

 

◆IF関数

◆REGEXMATCH関数

◆REGEXEXTRACT関数

スプシのA1のセルに和暦を入力しており、B1のセルに関数を入力しております。

 

上記ではあえて令和の変換をしていないので、練習として令和を西暦にしてみましょう。

非エンジニアでも問題なく使いこなせるように解説していきます。

 

IF関数を使えるようになると、出来ることの幅がいっきに広がります。

 

IF関数というのは、ある条件によって処理を分岐する関数です。

Google support = https://support.google.com/google-ads/answer/7207341?hl=ja

 

例えば、バナナはおやつかどうかで、遠足に持っていけるおやつの量に影響が出てくる大事な場面に遭遇したとしましょう。

 

その時の条件分岐を説明しますと、

 

◆バナナはおやつかどうかを判断する。

◆YES→僕はおやつをもう買えない。

◆NO→僕は100円分のおやつを買いに行く。

 

このようにIF関数を使うことで、次の行動するようにスプレッドシートに指示を出すことが出来ます。

 

IF関数の書き方を知って、論理式で判別しましょう。

 

IF(論理式,Trueの場合,Falseの場合)

なので、バナナはおやつかどうかの論理式に置き換えると

 

IF(バナナ=おやつ, 僕はおやつをもう買えない, 僕は100円分のおやつを買いに行く)

という書き方になります。

 

今回はネスト(入れ子)で使うので、さらっと予習しましょう。

 

式にすると以下のようになります。

IF(論理式1,Trueの場合1,IF(論理式2,Trueの場合2,Falseの場合2))

 

この場合、論理式1がFalseの場合、次の条件分岐の論理式2で判別することになります。

 

 

探したい文字を見つけたい時は、正規表現の関数を使います。

 

IF関数以外の2つの関数は、正規表現を取り扱う関数です。

 

記号を使って文字列を表現する方法なので、初めのうちは理解が難しいと思いますが、

正規表現というものがある事を知っているだけでも大丈夫です。

 

REGEXMATCH関数は文字列の中を検索出来ます。

 

見つかればTrue、見つからなければFalseを返してくれるとてもシンプルなものです。

IF関数との相性はバッチリなんです。

 

関数の書き方は以下の通りです。

REGEXMATCH(“ランダムな文字列”,”検索したい文字”)

 

使用例は以下の通りです。

●REGEXMATCH(“平成31”,”平成”)と書かれていた場合、Trueを返す。

●REGEXMATCH(“平成31”,”昭和”)と書かれていた場合、Falseを返す。

 

REGEXEXTRACT関数は、検索した文字列を抜き出せます。

 

REGEXMATCHととても似ていて性格もほぼ同じなんです。

しかし唯一の違う点は、探している文字が見つかったらそれを抜き出してくれるという所です。

 

関数の書き方は以下の通りです。

REGEXEXTRACT(“ランダムな文字列”,”検索したい文字”)

 

使用例は以下の通りです。

●REGEXMATCH(“平成31”,”[0-9]+”)と書かれていた場合、31を返してくれます。

 

[0-9] と + は正規表現と呼ばれるもので、特に暗記する必要はないです。

 

[0-9] : マッチする文字の範囲を指定する表現をしており、この場合は0から9の中で当てはまるものがTrueであり、抜き出されます。

+ : 直前の文字列のパターンの一回以上の繰り返しにマッチします。

 

3つの関数を上手に組み合わせると、和暦を西暦に変換することが出来るようになります。

 

昭和を西暦に変換することが出来る関数の組み合わせです。

 

Convert the Showa era

 

=IF(REGEXMATCH(A1,”昭和”), REGEXEXTRACT(A1,”[0-9]+”)+1925,”一致なし”)

昭和元年 (1年)は西暦では1926年という事と、昭和0年というものは存在しないため、

和暦の数え年に1926-1を足す事で、昭和を西暦で表示する事が出来ます。

 

平成を西暦に変換することが出来る関数の組み合わせです。

 

Convert the Heisei era

=IF(REGEXMATCH(A1,”平成”), REGEXEXTRACT(A1,”[0-9]+”)+1988,”一致なし”)

昭和と同様に、平成1年が1889年なので、1889-1=1880を和暦の数え年に足す事で平成を西暦で表示する事が出来ます。

このまま、関数の組み合わせがバラバラだと、1つのセルの中で1つの元号でしか西暦に変換できず、不便ですよね。

 

そうならない為に、一致しない場合にはまた条件分岐をすると以下になります。

 

Function to convert era

=IF(REGEXMATCH(A1,”昭和”), REGEXEXTRACT(A1,”[0-9]+”)+1925,=IF(REGEXMATCH(A1,”平成”), REGEXEXTRACT(A1,”[0-9]+”)+1988,”一致なし”)
)

昭和のFalseの部分に、平成を西暦に変換する関数の組み合わせを入れ子にします。

 

これは、REGEXMATCHで昭和という文字列が検索に当たらなければ、

平成という文字があるかを検索する条件分岐に行くという指示をしているんです。

 

GASを使いこなすことで、自分の分身を作れるんです。

 

毎日の作業の中には、生産性のない退屈なものも有るけれど、その作業を自動化できたらどうでしょうか。

気にならない程少ない時間の浪費でも、積み上がれば相当な時間を失っていることになるんですよね。

 

自分の時間と力だけを使って努力するのは簡単だけど、

最初に自動化することに時間と力を投資し、システムを作ってしまえば、

その先はもっと他のことに自分の時間や力を使えるようになります。

 

自動化は、自分のクローンを作ること以上の価値があると思っています。

 

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google流 資料作成術 [ コール・ヌッスバウマー・ナフリック ]
価格:2160円(税込、送料無料) (2019/7/12時点)

楽天で購入