最近のご時世では自宅待機や時短勤務などが頻繁に発生するため、工場では各作業員の出勤表を全社で共有できるようにしています。
それには、簡単作成、簡単共有、同時にリアルタイム編集可のグーグルスプレッドシートが最適。
スプレッドシートやエクセルなどでカレンダーを作成する機会はよくあることで。
今まで私は日付を入力してからドラッグして自動入力していたのですが、なにか便利な方法があるはずだと思い、調べて作ってみました。
開始日を変更すると、日付、曜日、行の色も自動的に変更されます。
開始日を入力するだけで、シートの行数分日付が入力され、その隣に曜日が表示され、その曜日ごとの行が色付されます。
(カレンダーなんて、最初に作ってしまえばそんなに変更などしないし、年に何度も作るものでもないし、ここまでやる必要もないとも思いますが、そう言わずに、来年のために作っておくと来年の自分に感謝されるかも!)
<作り方>
※今回のやり方では、シートの行数分だけカレンダーが作成されてしまいます。
予めシートの行数を作りたい日付ぶんだけにしておくことをおすすめします。

A1に開始日を入力。

A2に
=SEQUENCE(ROWS(A2:A),1,A1+1)
を入力すると。。。

ズラッと妙な数字が出現。
(これはシリアル値という、プログラムが扱いやすいように日付を単純な数値に置き換えたものらしいです。ちなみに1900年1月1日を1としてカウントした数字らしいです。)

「表示形式」で「日付」を選択。

日付の隣の列に曜日を表示させる。
B2に
=ArrayFormula(TEXT(A1:A,”ddd”))
と入力すると。。。

A列の日付に対応した曜日が出現。
あとは、土日祝日に色付けする方法ですが、それは下記のサイトを参考にさせていただきましたので、そちらをご参照ください。
(作業としては休日一覧シートを作り、それをもとに条件付き書式の設定をするというかんじになります。)
条件付き書式の設定は「miyadir.com」さまのこちらの記事を参考にさせて頂きました。
改めまして完成したシートを動画で御覧ください。
キャプチャではなく単純にカメラでディスプレイを撮影しているアナログ人間。。。
ああ、気持ちいい。
数式めんどくさい、カレンダー見ながら手作業でやったほうが早いというアナログなエクセルの達人の方もいらっしゃるでしょうが、
来年の自分のために!ぜひお試しを!
以前コメントで教えて頂いたSEQUENCE関数がめちゃ便利ですね。
改めましてお礼を申し上げます。
ありがとうございました。
<SEQUENCE関数について解説>
Googleヘルプリンク
ヘルプの解説に、
SEQUENCE 関数は、1、2、3、4 などの連続する数値の配列を返します。
SEQUENCE 関数の引数
SEQUENCE(行数, 列数, 開始値, 増分量)
●行数 :必須です。返す行数です。
●列数 :省略可能です。返す列数です。省略すると、返す配列は 1 列になります。
●開始値 :省略可能です。数列の開始値です。省略すると数列は 1 から始まります。
●増分量 :省略可能です。数列内の各値の増分量です。省略すると数列は 1 ずつ増加します。
とあります。
今回の数式では
=SEQUENCE(ROWS(A2:A),1,A1+1)
「行数」が「ROWS(A2:A)」
(行数を指定するなら最後のAの右に数字を入力する)
「列数」が「1」
(1でも省略しない。次の開始値を設定する必要があるので、列数は1でも省略するとエラーになります。)
「開始値」が「A1+1」(A1の日付の次の日)
「増分量」は「1」なので省略。
となっています。
ピンバック: Googleスプレッドシートで昨日まの行を自動的に非表示にする。~日付の比較判定に挫折~MATCH関数を組み合わせてなんとか実現できました。 | 松栄シルク工場報 Shoeisilk Factory Report prepared by