見出し画像

ExcelのカレンダーテンプレートをGoogleスプレッドシートで使っちゃおう!

2024年の年末のnoteってことで、2025年用のGoogleスプレッドシートのカレンダーネタを書きたいと思います。

過去に書いたような 数式を駆使するゼロからのカレンダー生成じゃなくて、今回はテンプレート、しかもExcelのテンプレートからカレンダーを拝借してGoogleスプレッドシートで使っちゃおう!という簡単で実用的なネタです。

もちろん学びもあるんで、最後までお読みください。(普段より短めです)

さくっと使いたいって人は最後のまとめだけ 👇 読むでもOKです。

Excelの年間カレンダーテンプレートを Googleスプレッドシートで使う方法 まとめ


前回は2024年12月のGoogleフォームのアップデートについて書きました。(大反響 感謝!)



Googleスプレッドシートで カレンダーテンプレート迷子に!?

2025年、出来ればそれ以降も年を変更するだけでずっと使えるカレンダーが欲しい!

でも自分で作るのは面倒!!

こんな時はテンプレートを活用するのが便利なんですが・・・。



Googleスプレッドシートの公式テンプレートの使いかた

Googleスプレッドシート公式のテンプレートは、Googleスプレッドシートのホーム画面上で確認することが出来ます。

もし画像のような上部の「テンプレートギャラリー」が表示されない場合は、テンプレートの表示がオフになっていると思われます。

スプレッドシートのホーム画面左上から 設定を開き、ダイアログ内の テンプレートの箇所で 「ホーム画面に最近使用したテンプレートを表示」にチェックを入れて OKとしましょう。

他にも Googleドライブ上や Googleスプレッドシートを開いた状態からも テンプレートの画面に飛ぶことができます。

一応テンプレートページの直リンクもあります👇

https://docs.google.com/spreadsheets/u/0/?ftv=1



Google公式のカレンダーテンプレートがない!

mirはあまりテンプレートを使わないんで、今回のnote書くにあたって気づいたんですが、現在は Google公式のスプレッドシートのテンプレートギャラリーに カレンダーがありません

昔は公式のカレンダーテンプレートがあったんですが・・・

https://allabout.co.jp/gm/gc/486718/

AIに全集中ってことで、Googleもだいぶ人員削減しちゃったからでしょうか・・・。

いかにもGoogleって感じの放置プレイですね。



ネット上には カレンダーのテンプレートが色々転がってるけど・・・

公式にはなくても、

Googleスプレッドシート カレンダー テンプレート

と検索すると、色々それっぽいサイトが見つかります。

ただ、ざっと確認しましたが多くが

  • 2024年以前のカレンダーで 2025年に対応していない

  • 自分で作るためのガイド

  • デザイン性がイマイチ

こんな感じで、2025年カレンダーとして活用できるいい感じのテンプレートが見当たりません。



Googleスプレッドシートのテンプレートが無いならExcelのを使えばいいじゃない

マリーアントワネットじゃないですが、手っ取り早い方法がコレですw

さすが Microsoftさん、カレンダーテンプレートも充実してますね。

公式なんで安心・安全ですし、Excelのカレンダーは 基本的には 年の数字を変更するだけで 2026年も2027年も使える 出来のよいものが揃っています。

もちろん本来は Excel用のテンプレートですが、互換性のあるGoogleスプレッドシートで使うことができます。

今回は Excel の年間カレンダーのテンプレートを使っちゃいましょう。



Excelの年間カレンダーテンプレートを使ってみよう(Excelで)

テンプレートの中身はこんな感じです。まずは Excelで開いて確認する方法から。



カレンダーテンプレートは Excel2019でも開ける

Excelがパソコンに入ってるなら、テンプレートのファイルをダウンロードしてそのまま開いて確認できます。(スピル非対応のExcel2019で確認)

3行4列の年間カレンダーで、

  • 週の開始の曜日を変更できる

  • 年を変えることで2025年以降も使える

  • 前月、翌月の日付は 自動でグレー表示になる(条件付き書式)

という機能が仕込んであって、なかなか便利です。

日曜始まり → 月曜始まり、2025年 → 2026年 と変えてみた

データの入力規制から、入力時メッセージを指定することで、セルを選択した時に説明を表示させています。

この手のユーザーフレンドリーな機能が Googleスプレッドシートには足りないのよね・・・。

よく出来ています。



カレンダーテンプレートは 無料のWeb版Excelでも開ける

Excelがインストールされていないパソコンの場合は、無料のWeb版 Microsoft365を使うことで カレンダーテンプレートを開くことができます。

無料の Microsoft 365 Online | Word、Excel、PowerPoint

ダウンロードしたExcelファイルを MS365のホーム画面からアップロードすればOK。

※OneDriveで同期してる場合は そのフォルダに保存してもOK

We版Excleでも問題なくカレンダーが使えます。

でも Web版 Excelなら グローバルのテンプレートギャラリーにも カレンダーのテンプレートがいっぱいあるんで

https://create.microsoft.com/en-us/search?query=Calendar&filters=excel

こちらのテンプレートを Web版Excelで直接使うって方法でもいいかも。

ただし、今回使ってるテンプレートと同じものは無さそうでした。

この辺りのExcelのコンテンツの多さというか、層の厚さは Googleスプレッドシートに比べて圧倒的に強いと感じます。



Excelの年間カレンダーテンプレートを使ってみよう(Googleスプレッドシートで)

で、ここからが本題です。

ダウンロードした 先ほどの日本仕様のExcelの年間カレンダーテンプレートを Googleスプレッドシートで使ってみましょう!


Excelファイルを Googleスプレッドシートで開く 

Excelファイル(xlsxファイル)をGoogleスプレッドシートで開く為には、まずはGoogleドライブにファイルをアップロードします。

先に Googleドライブ(の中に作ったフォルダ)をブラウザで開いた状態で、ドラッグ & ドロップで放り込むのが一番簡単です。

こんな感じでさくっとアップロードが完了。

あとはファイルをダブルクリックすれば

少し変換に時間がかかりますが

とりあえずカレンダーを 開くことが出来ました~。



Excelのカレンダーテンプレート ▶ Googleスプレッドシート で発生した問題

互換性があるとはいえ、ExcelをGoogleスプレッドシートで開くとレイアウトが崩れたり、一部の機能が消失したりといったことが必ず発生します。

  • セルに設定されていた入力時メッセージが消失

  • P1:AC1の結合セル内の文字が見切れてしまう

  • 曜日部分がすべて aa となってしまう

今回は これらの問題が発生しました。


「Excelを Googleスプレッドシートで、そのまま表示させる方法はないのか?」

といった質問ををQAサイトでたまに見かけますが、これは無理です

そんなことが出来たらExcelいらなくなっちゃいますよね。

無料の表計算も幾つか使ったことがありますが、体感的には有料ですが安価なキングソフトの WPS Officeが Excleと一番互換性が高い印象です。(mirの個人的感想です)

昔はUS版はなぜか無料だったんで、そちらをインストールして、日本向けの使用期間が限定される無料体験版から 日本語化のファイルだけもってきて、無料で日本語の WPS Officeを使う裏技みたいのがありましたw


話を戻しますが、3つの互換性の不具合に関しては

  • セルに設定された入力時メッセージが消失

これはGoogleスプレッドシートには 機能として無いものなんで、諦らめるしかないです。

まぁ自分用なら問題ないですし、使ってると邪魔だなって時も多いんで無くていいかなと。


  • P1:AC1の結合セル内の文字が見切れてしまう

これは単に文字サイズを変えればよいだけなんで問題なし。フォントサイズを11 → 10で 解決です。



  • 曜日部分がすべて aa となってしまう

で、一番のネックがこちらです。

そもそも原因がわからないって人も多いでしょうし、やや中身の構成が複雑なんで どこをどう直せばいいのか? と困る人が出る部分かと思います。

これを解決していきましょう。

3つの不具合以外は 曜日のプルダウン、それに連動して 月の開始日が変わる部分、そして年の数字を変えて カレンダーが変化する点、当月以外の日付のグレー表示など、全て問題ありません。

つまり、曜日表示の問題だけ解決すれば Excelの年間カレンダーテンプレートは Googleスプレッドシートで使えるってことです!



Excelカレンダーテンプレートを Googleスプレッドシートで開いた時の曜日表示の問題を解決する

それでは、この Excelカレンダーの曜日表示が aaとなってしまう問題を解決していきましょう!



CSE式とARRAY_CONSTRAIN関数

この曜日部分ですが

Excelだと

{=DayHeaders}

Googleスプレッドシートだと

=ARRAY_CONSTRAIN(ARRAYFORMULA(DayHeaders), 1, 7)

という数式が入っています。

Excelの方は CSE数式っていうやつですね。今や懐かしい古の配列式です。

スピル非対応の Excel2019で開いた為、このような表示になっているのかと思われます。

スピルが機能するWeb版Excelなら普通に

=DayHeaders

でも 月~日 の曜日が返ります。


では、Googleスプレッドシートの方の式を見ていきましょう。

=ARRAY_CONSTRAIN(ARRAYFORMULA(DayHeaders), 1, 7)

ARRAY_CONSTRAIN は、配列を指定した行数、列数に縮小する関数です。


配列の左上範囲を必ず取得することになる

Excelの TAKE関数に近い関数といえますが、ARRAY_CONSTRAIN関数は 引数のマイナス指定や省略が出来ない為、TAKEに比べてかなり使い勝手は悪いです。

ExcelのTAKE関数は マイナス指定で 右下エリアを残すことも可能

そもそも Excle側は遂になるDROP関数があって、こっちの方が活用機会が多いですしね。

今回の場合は、

=ARRAY_CONSTRAIN(ARRAYFORMULA(DayHeaders), 1, 7)

で、配列を 1行7列のサイズに縮小しているわけですが、これは実は特に意味はありません

Excel → Googleスプレッドシート変換でスピル式やCSE式に ARRAY_CONSTRAIN が付くことが結構ありますが、削っても問題ないケースがほとんどです。

とりあえず面倒なんで今回はこのまま放置で。

ARRAYFORMULA は、中身の DayHeaders を配列処理する為に付けていると思われます。これもこのままとしておきましょう。



曜日部分は 名前付き関数(の結果)

重要なのは

DayHeaders

の部分です。

これは作成者がExcelの名前の定義機能で、セル範囲や数式に名前をつけたもので

インストール版の Excelの場合は、数式タブから 名前の管理 を開くことで、中身を確認できます。

Web版Excelだと 同じ数式タブからですが、ネームマネージャー(なぜかサイドバー上は 名前マネージャー)から確認することができます。

ここで  DayHeaders の中身が

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

このような数式になっていることを確認できます。

この部分をGoogleスプレッドシート側で 修正すれば良さそうです!


Googleスプレッドシートは、Excelのような 名前の定義を一元管理する画面はなく、

  • 名前付き範囲

  • 名前付き関数

の2つに分かれています。

今回の場合は 名前付き関数なので、 データ > 名前付き関数 でサイドバーを開くと 

DAYHEADERSがありました。

ただ、3点リーダーから「編集」で中身を確認しようとすると

このような警告表示がでます。


Google スプレッドシートの名前付き関数には、丸括弧を使用する必要があります

Excelの名前機能だと 普通に数式(の結果)を DAYHEADERSと 定義できますが、Googleスプレッドシートの「名前付き関数」だと

DAYHEADERS()

() を付けて記述する必要があるんです。


ExcelをGoogleスプレッドシートで互換表示した際にDAYHEADERS で動いてるのは、特別にお目こぼしをしてもらってたってことですね。

ただ「変換」ボタンを押すと、もう後戻りできないよう見えますが

次の画面で「キャンセル」を押せば問題ありません。

とりあえず 修正が必要な DAYHEADERS の中身の修正すべき式

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

を発見しました。



ExcelとGoogleスプレッドシート 曜日の表示形式の違い

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

DAYHEADERS として定義されている、こちらの式を理解していきましょう。

まず、年間カレンダー!$B$7:$H$7 ですが、

1月のカレンダーの3週目の範囲です。

開始の曜日を可変としているので、とりあえずここをExcelでは TEXT関数で "aaa" という表示形式で 短い曜日表示に変換してるってことですね。


この曜日表示でも ExcelとGoogleスプレッドシートでは違いがあります。

Excelには ローカル言語(Excelで設定している言語)の曜日表示 "aaa"(長い曜日表示は "aaaa")と、英語の曜日表示 "ddd"(長い曜日表示は "dddd")と 2通りの曜日表示設定 があります。

日本語の短い曜日表示は、 "aaa" と記憶している人も多いでしょう。

一方、Googleスプレッドシートは ローカル言語の曜日表示形式 "aaa"("aaaa")がありません

B3セルに日付が入っていて

=TEXT(B3,"aaa")

としてB3セルの日付の曜日を表示させようとしても、そのまま aaaと表示されるだけです。

Googleスプレッドシートの曜日表示は  "ddd"("dddd")のみ で、言語設定が 日本語になっていれば、 日・月・火 といった 漢字1文字の曜日が表示されますし、英語の設定になっていれば Sun・Mon・Tue と英語の短縮形の曜日表示となります。

言語設定は メニューの ファイル >設定 から変更できます


Googleスプレッドシートで発生している 曜日が "aa"と表示されるエラーは

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"ddd"),2)

と修正すれば、解決しそうですね!

ちなみに LEFT関数で 2文字だけとしているのはなんで?と思いますよね。

これは 日本語環境では不要ですが、恐らくUSなどの 曜日の短縮形が 2文字だったり3文字だったりするような言語だった場合に 全て 2文字に統一する用の グローバルに使える式にしているからだと思われます。

つまり、本来は 曜日を 2文字以下(日本語の場合は1文字)で表示させる為の式

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

が、Googleスプレッドシートだと aaa が(短い)曜日表示形式として認識されず、TEXT(年間カレンダー!$B$7:$H$7,"aaa") の結果が全てそのまま aaa となり、そこから LEFT関数で先頭から2文字取得した aa が結果として返る 

これが 曜日がGoogleスプレッドシートで aa となっていた 今回の事件の真相です。



検索と置換で 数式を一括修正

原因がわかれば対処は簡単です。名前付き関数 DAYHEADERS の編集画面で

式の "aaa" の箇所を "ddd" として 「次へ」、サイドバーで最後に「更新」を押しましょう。


ひー!! 曜日の部分が全て #N/A エラーとなりました。

これは 先ほど書いた通り数式内の DAYHEADERS() とすべき箇所が ()が無い為に発生しています。

これを一気に修正する為に 検索と置換を使いましょう。

検索と置換を開き

検索 DAYHEADERS
置換後 DAYHEADERS()

検索(範囲)「このシート」
数式内も検索 に✓

これで「全て置換」を押します。

曜日が正しく表示されました~。


「数式内も検索」にチェックを付けて置換処理することで、複数のセル内の数式を一気に修正することが出来ます。

よりハイレベルな検索と置換の使い方はマガジンにまとめているので、興味があったらこちらも参照ください。



Excelの年間カレンダーテンプレートを Googleスプレッドシートで使う方法まとめ

最後に今回の手順をまとめます。



Excelの年間カレンダーテンプレートを Googleスプレッドシートで使う方法 まとめ


1. Excelの年間カレンダーのテンプレートをダウンロードhttps://www.microsoft.com/ja-jp/office/pipc/template/result.aspx?id=14424

2. Googleドライブに ダウンロードしたファイルをアップロードして開く

3. 文字が見切れている箇所を修正

4. 曜日が aa となっているので、 データ > 名前付き関数 から
 DAYHEADERS を 編集、中の式 の "aaa" を "ddd" に変更

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"aaa"),2)

=LEFT(TEXT(年間カレンダー!$B$7:$H$7,"ddd"),2)

5. 曜日の部分が全て #N/A エラー になるので、検索と置換を開き
 以下の通り設定して「全て置換」を押す。

検索 DAYHEADERS
置換後 DAYHEADERS()

検索(範囲)「このシート」
数式内も検索 に✓

これでOK

約1分で Googleスプレッドシートで使える万年 年間カレンダーが 完成です!



Googleスプレッドシートとして使うなら ExcelをGoogleスプレッドシート形式で保存しておこう

もし 取り込んだExcelを 今後もGoogleスプレッドシートとして使っていくなら、xlsx形式ではなく Googleスプレッドシート形式に変換しておくことをお勧めします。

開いているファイルが Excelファイルの場合、タイトルの横に .XLSX という表示が出ているので、これが スプレッドシートなのか Excelなのか簡単に見分けられます。

Excelファイルの場合は、メニューの ファイルから 「Googleスプレッドシートとして保存」とすることで、このファイルが保存されているフォルダ内に スプレッドシートに変換された同じファイルが生成されます。

Googleスプレッドシートに変換して保存することで、ファイルサイズをかなり圧縮できます。


また、IMPORTRANGEなど一部の関数が使えなかったり、GASが使えなかったりと、xlsx形式のままだと不便なことがあります。

xlsxファイルのままでも問題ないように見えますが、 スプレッドシートに変換して保存、元のxlsxファイルは削除した方がメリットが多いのです。



次回は 2024年の最後の noteです

Excelのカレンダーテンプレートを Googleスプレッドシートで利用するというテーマを通じて

  • ExcelとGoogleスプレッドシートの名前機能の違い

  • ExcelとGoogleスプレッドシートの曜日の表示形式の違い

  • Googleスプレッドシートの「検索と置換」による 数式内の一括置換

などを学ぶことができましたね。

次回は、2024年最後のnoteです! でも、なにをやるかは未定・・・。


いいなと思ったら応援しよう!

mir
チップ大歓迎です。やる気がアップしますw