【AppSheet】和暦を基本としてデータベースを使えると、ちょっとモダン。


<和暦だなんて日本人だけが使う。だからこそ。使えるなら使いたい。>


最近は、パソコンやスマホをよく使う人は、西暦をベースに使う人が多数かと思います。しかし、お役所や自治会などの書類は和暦が中心です。自治会のデータベースなどを作るとき、和暦西暦のどちらを基本にして記録するようにするか、悩みどころです。

10年前は平成何年ですか?

こんな簡単な質問に、多くの日本人が即答できません。「えーと平成は、31年までだっけ。だから。えーと。。。変なこと聞くな!」と逆に怒られてしまうそうです。

しかしなんで和暦などという不便なものを、お役所は使っているのでしょうかね。

多分、公務員の最初の仕事は、和暦西暦対照表を暗記することなのかも知れません。まあ大正くらいまで。まあ、覚えるのは無理か、机の上に貼ってあるでしょうね。

でも介護保険証を持つような高齢者になってきた私は、日本人なのだからパソコンの中でも和暦を使いたい、そんな思いが強くなりました。

AppSheetとは、ノーコードアプリ開発用のアプリと分類される、今流行りの、というか、これから流行るだろう開発ツールの一つです。Googleが提供しています。最近私は、GoogleのGASやスプレッドシートで、複数のプッシュ通知を簡単に操る方法を自作してきましたが、その延長において、このAppSheetのデータベース機能が加わると、もうほんとに、大袈裟に言えば、自宅のパソコンで手軽に、本格的な情報処理システムが出来てしまう。そんな気がしてきます。

一番最初に作っておくこと。

 旅に出る時、最初の玄関口で、その先様々な場面で使われるようなものを予めリュックに詰め込めたら、とても安心できます。作業はなんでもそうですが、後になってから元に戻って、新しい要素を突っ込むのは、実に困難です。その意味で、以下で解説する「年号アプリ」は、旅の必携品の一つではないかと思います。

余談ですが、このデータベースアプリAppSheetを体験すると、おそらく多くの人が、「だから経験者は強いんだ。経験者から学ぶべきなのだ。」と、このことに気付くはずです。「先輩が言っていたのはこのことだったのか。」と。ん〜、だから、AppSheetのような類は、時代に合っています。教材にはうってつけでしょう。

ポイント解説

年号アプリを作る手順を解説します。

<1> Googleスプレッドシートで年号ファイルを作る。

最初に以下のように、シート名を「年号」、項目に「ID年号」「和暦」「西暦」を作ります。

<2>AppSheetで年号をメンテナンスするアプリを作る。

さて次に、Googleスプシへ、データを書き込んでいきます。この時、AppSheetを使うようにします。AppSheetはGoogleから無料で使えるデータベース開発アプリですが、Googleアカウントを持っていれば、誰でも無料で使えます。Googleスプシのメニューの「拡張機能」の中にあるAppSheetを使います。

肝心なことを言い忘れていました。AppSheetはまだ英語のままです。とはいえ、それほど難しい英語ではありませんので、慣れると思います。ここでは解説は割愛しますが、YouTubeを紹介します。

<3>和暦西暦を登録する。

上のYouTubeの例は、植物の登録ですが、今回は、和暦と西暦を画面から打ち込む、という作業になります。「UX」でformを選択すると、以下のような入力画面が作れます。

「キャンセルする」「保存する」と表示を日本語にするのは、「UX」→「Localize」で英文字を日本語へ変更します。

Gooogleスプシには以下のようにデータが入ります。「ID年号」には乱数が入っていますが、これは項目名の先頭にIDを入れて「IDxxxx」と名前を付けると、初期値(INITIAL VALUE)に<< UNIQUEID() >>が自動的に入って、乱数が自動的に生成されます。このように「ID年号」をKEYにする理由ですが、一つの西暦の中に複数の和暦が存在するからです。例えば、2019年には平成31と令和1が存在します。古く飛鳥時代は、複数の和暦だらけです。

余談ですが、履歴書を書く場合は、令和1年ではなく令和元年と書く方が正式だそうです。今回のデータベースはどちらにしましょうか。後から変えることができますので、とりあえず<< 令和1>>と数字で書くことにしておきます。

6行目が空欄になっていますが、これはformからデータを「削除」しています。

さて、こうして、和暦西暦データを登録していきますが、たまたま私は、令和4年から遡るように入れたので、先頭に令和4が来ています。というか逆に、古い方から入れたら「大化1=645」から入れることになります(ま、いずれやってみます)。ともかく、この後、令和5以降を入れた場合、一番下の行に追加されることになります。つまり、もし、このままのデータ順で年号を選ぶと、選択肢の一番下に令和5が来ることになり、とても面倒です。

<4>Googleスプレッドシート2番目のシート、例えば「西暦SORT年号」シートを作る。

そこで私の考えた簡単な方法です。まず、適当な名前をつけた、例えば「西暦SORT年号」シートを追加します。

<5>「西暦SORT年号」シートにquery関数を埋め込む。

以下の関数をA1カラムに書き込みます。空白行を飛ばしてC列の降順(大きいものが先頭に来る)に並び替える関数です。ちなみに、昇順にするには<< asc >>にします。

=query('年号'!A:C,"select * where C is not null order by C desc")

すると、一番下の行にある「令和5」は一番大きい西暦なので、先頭に来ます。

<6>AppSheetで利用する〜参照はRead-Onlyで。

年号のメンテナンスは、「年号」シートへ << Updates Adds Deletes >>で行い、利用する時は、「西暦SORT年号」シートから<< Read-Only >>で利用します。AppSheetの「Columns」設定でKEYを「ID年号」、LABELを「和暦」にします。そうすることにより、以下のように、令和5が先頭に来た選択リストを表示することができます。

また、和暦の生年月から現在の年齢を計算する時、和暦間の年数を計算する時、対応する西暦がすぐ参照できるので、非常に便利です。

今回の方法を元にSORTカラムを設定してメンテすれば、様々な選択リストにおいて、任意に並び替えができますので応用ください。

<7>余談

そんなことしなくても、EXCELの「セルの書式設定」の中に、西暦を和暦に変換してくれる機能があるじゃないですか。

という方がいると思います。

しかしそれは近視眼ではありませんか?

EXCELは明治33年=1900年以降しか変換できません。試しに645年を入れても「大化」とは出てきません。

それでは困りますよね?

え!困らない。。。

まあ。。正直言って、和暦は。

無くても困りません。

無くても、世界どこにいても、日本の中でも、困るということはありません。

ただ言わば、日本の長い歴史を証する日本語の文字列、ある種DNA配列のようなものです。困らないけど大事なんですね。

だから、明治33年以降しか出ません。というのでは、反発したくなります。

えっちらおっちら、表にしてみましょうか。。。

以上