LoginSignup
1
2

More than 1 year has passed since last update.

スプレッドシートでカレンダーを作る①

Last updated at Posted at 2022-05-25

やりたいこと

I2に指定した月をいれると、自動的にカレンダーの日にちが変わるものを作りたい
今回はGASを使わずに、関数と条件付き書式だけで実装

image.png


image.png

参考

https://office-hack.com/spreadsheet/spreadsheet-calendar/
こちらを参考にさせていただきました。
というよりこの回はほとんどこちらの通りに作成していますので、
より詳しくは上記URLを参考にしてください。

次の回で、GASを使ってカレンダーに記載する予定の数に応じて
行を増やしながらカレンダーを作成します。

実装

日付の自動入力

C6セル(1週目の日曜日の日付)に以下計算式を入力

=DATE(J2,I2,1)-(WEEKDAY(DATE(J2,I2,1),1) - 1 )

Date関数はDATE(年, 月, 日)で日付に変換する関数です。

Weekday関数はWEEKDAY(日付, [種類])で指定した日付に対応する曜日を数値で返します。
今回は種類に「1」を指定することで、日曜日=1、土曜日=7としています。

image.png

あとは、=前日セル+1ってやっていけばOKです

写真では既に日にちの表示になっていますが、
実際はyyyy/mm/ddの形で表示されてるかと思います。

表示形式>>数字>>カスタム日時
から以下のように設定してください。

image.png

日付の色

スプレッドシートの[条件付き書式設定]で、土日と祝日に自動的に色をつけます。

image.png

条件付き書式のデータ範囲は、少しめんどくさいのですが、
日付が入っているセルを選択します。

image.png

土日

条件でカスタム数式を選択し、
土曜日の場合は、=WEEKDAY(C6)=7
日曜日の場合は、=WEEKDAY(C6)=1
で設定します。
(C6)と入れているところは、範囲開始の先頭セルを選んでいます。

祝日

祝日の場合は、まず「祝日」シートを作って
以下のように入力します

image.png

そして、名前付き範囲を作成します。
image.png

カレンダーのシートに戻り、
条件付き書式に土日と同様に範囲を設定し、
カスタム数式で以下を入力
=COUNTIF(INDIRECT("祝日"), C6)=1

今月以外をグレーアウト

条件付き書式に土日と同様に範囲を設定し、
カスタム数式で以下を入力
=MONTH(C6)<>VALUE(SUBSTITUTE($I$2,"月",""))
$I$2と入力しているところは、実際に月を入力するセルを絶対参照で入れます。

条件付き書式は上から順番に適用されるので注意が必要です。

  • 今月以外をグレーアウトを 一番上 にもっていった場合
    image.png
  • 今月以外をグレーアウトを 一番下 にもっていった場合
    image.png

②はこちら

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2