![見出し画像](https://assets.st-note.com/production/uploads/images/145931138/rectangle_large_type_2_c81a71a03e41c4b185d7b5c3277b5423.png?width=1200)
Googleシート年号自動変換
こんにちは、ヒロです。
数あるブログの中から、僕のブログにお越しいただきありがとうございます。簡単に読める記事を目指していますので、ぜひ最後までお読みください。
このブログでは、デジタルトランスフォーメーション(DX)を促進するための自動化ツールの情報をお届けし、その結果生まれた時間を大切な人との時間や趣味、スキルアップに使っていただければと考えています。
以前の記事で、ExcelにはないGoogleシートの便利な関数について紹介しました。興味のある方はぜひご覧ください。
なぜARRAYFORMULAを使いたいか?
以前の記事でも僕の考え方をシェアしましたが、データ入力は極力最小限にしたいのです。なぜなら、入力ミスを減らすことができるからです。単なる時短というだけでなく、データの正確性を保つことができます。
データ入力を最小限にしていったとしても、何かのデータを入力しなければならない時があります。その時にARRAYFORMULAが役に立つのです。
コピペを回避
コピペは手入力よりは入力ミスが少ないかもしれませんが、ミスがゼロにはなりません。
コピペのもう一つの問題
コピペは手入力よりは入力ミスが少ないかもしれませんが、ミスがゼロにはなりません。また、データが増えるたびにコピペが必要になるのも問題です。
ARRAYFORMULAが超便利
入力ミスを防ぎ、コピペを回避するための強力な手法の一つにARRAYFORMULAを使うことがあります。データが新たに入力される毎にARRAYFORMULAを使った列の値が自動的に更新されます。
関数を使った具体的
頻繁に使うものとして、以下は高齢の母の入出金の管理を少ししてみたときに作ったものです。アメリカで令和などという年号を使うことはほぼ無いので、その都度ググって今年の年号は?と調べていましたが、今回はARRAYFORMULAを使って自動変換しました。
ここでは令和に変わった年以前の日付は扱っていませんので、令和以前か以後かを判定するような条件式は入っていません。
関数の解説
今回は以下の式の解説をします。
ARRAYFORMULAを使ったときの範囲指定
データが存在する範囲を指定します。以下の場合、B列2行目から全てを範囲とします。(データが重い場合には、最終行数を取得して指定する方法もあります)
空白を確認する
ISBLANK(B2:B)関数を条件にして、空白の場合は、””、つまり空白のまま、空白でなかったら年号を変換します。
![](https://assets.st-note.com/img/1719890135866-05g7m8qQ0i.png?width=1200)
コードをコピペして試したい方はどうぞ!
=ARRAYFORMULA(IF(ISBLANK(B2:B),"","令和 "&TEXT(YEAR(DATEVALUE(B2:B))-2018,"##")&"-"&TEXT(B2:B,"MM-DD")))
年号の計算
現在の年号「令和」は2019年からなので日付の年数を取得し、2018を引いて令和の年数を計算します。
月日の計算
月日に関しては、TEXT関数を用いYYYY/MM/DDで入力されている日付を"MM-DD"というフォーマットで表示します。
全ての情報をつなぐ
これらの情報をアンパサンド&でつなぎます。テキスト文字はダブルクォーテーション””で囲み、関数はそのままで、&でつなぎ完成です。
データの入力規則(オマケ)
![](https://assets.st-note.com/img/1719892148004-sMUwECL50t.png?width=1200)
設定の方法を再度お伝えします。
![](https://assets.st-note.com/img/1719892222780-W8hvykUd7g.png?width=1200)
![](https://assets.st-note.com/img/1719892237689-3ixiuNAxVL.png?width=1200)
この設定でカレンダーから選ぶことが可能になります。
まとめ
ARRAYFORMULAを活用することで、データ入力の効率化と正確性の向上が図れます。ぜひ活用してみてください!
これからも、皆さんのDXをサポートする有益な情報をお届けしますので、お楽しみに。
いただいたサポートは活動費に充てさせていただきます。 少しでも皆さまのお役に立てるよう精進していきます。