miro blog

miro blog

My output is someone's input...

MENU

【スプレッドシート】カレンダーを自作する

 

今回は、スプレッドシートでカレンダーを作っていきたいと思います。スプレッドシートには、テンプレートがあるのでそれを使ってもいいですが、プルダウンで指定の年月のみを表示するようにしたいので、自作していきたいと思います!

 

 

新しくタブを作る

新しいシートを追加して、名前をカレンダーに変更します。

f:id:miro_ss:20200914085020p:plain

 

 

 

プルダウンで年、月を入力する

まず初めに月の入力をします。セルC2が選択されている状態で、「データ」から「データの入力規制」を選択します。

f:id:miro_ss:20200914120139p:plain

 

すると次のような画面が表示されるので、

f:id:miro_ss:20200914120511p:plain

 

「リストを範囲で指定」を「リストを直接指定」に変更します。

f:id:miro_ss:20200914120608p:plain

 

テキストボックスに、「1,2,3,4,5,6,7,8,9,10,11,12」と入力し、「保存」します。

f:id:miro_ss:20200914121111p:plain

 

セルC3にプルダウンができたので、「1」を選択しておきます。

f:id:miro_ss:20200914121538p:plain

 

同様に年の方もプルダウンで作ってもいいのですが、月と比べて頻繁に変更することもないので、直接入力でもいいと思います。ここでは省略させていただきます。

 

 

曜日を入力する

セルB4に「日」と入力し、セルの右下のフィルハンドルをH4までドラッグします。

f:id:miro_ss:20200914123001p:plain

「土」曜日まで入力されていれば大丈夫です。
f:id:miro_ss:20200914123014p:plain

 

 

 

日付を入力する

基準となる日付を入力する

DATE関数を使って、セルB2、C2で選択されている年月を日付に変換します。

  • A2 → =date(B2,C2,1)

f:id:miro_ss:20200914123850p:plain

 

DATE関数は、指定の年、月、日を日付に変更できます。

 

 

最初の日付を入力する

基準となる日付(選択した年月の1日)が最初の週の何曜日からなのかをWEEKDAY関数を使って入力していきます。

  • B5 → =if(weekday($A$2)=1,$A$2,"")

f:id:miro_ss:20200914125702p:plain

 

WEEKDAY関数は、指定した日付に対応する曜日を数値で返してくれます。
なのでここでは、IF関数の条件式が、「セルAが日曜日(=1)であるかどうか」となり、真であればここにA2の値を入力し、偽であれば空白を返すことになります。

 

セルC5〜H5には次のように入力します。

  • C5 → =if(B5="",if(weekday($A$2)=2,$A$2,""),B5+1)
  • D5 → =if(C5="",if(weekday($A$2)=3,$A$2,""),C5+1)
  • E5 → =if(D5="",if(weekday($A$2)=4,$A$2,""),D5+1)
  • F5 → =if(E5="",if(weekday($A$2)=5,$A$2,""),E5+1)
  • G5 → =if(F5="",if(weekday($A$2)=6,$A$2,""),F5+1)
  • H5 → =if(G5="",if(weekday($A$2)=7,$A$2,""),G5+1)

f:id:miro_ss:20200914130956p:plain


これは、たとえばセルC5において、「B5が空白であれば、A2が月曜日(=2)であるかどうかで分岐し、空白でなければ(日付が入力されていれば)1日足す」という計算をしています。

 

 

1週目が入力できたので、2週目以降を入力していきます。

  • B6 → =H5+1

f:id:miro_ss:20200914132642p:plain

 

  • C6 → =B6+1

このセルC6のフィルハンドルをH6までドラッグします。

f:id:miro_ss:20200914133058p:plain

f:id:miro_ss:20200914133108p:plain


 セルB6〜H6を選択した状態で、フィルハンドルをH8までドラッグ。

f:id:miro_ss:20200914134704p:plain

f:id:miro_ss:20200914134713p:plain

 

 

月末の表示

セルB9〜H9に次のように入力します。

  • B9 → =if(H8="","",if(month(H8+1)=month($A$2),H8+1,""))

f:id:miro_ss:20200914163243p:plain

  • C9 → =if(B9="","",if(month(B9+1)=month($A$2),B9+1,""))

このセルのフィルハンドルをH9までドラッグ。

f:id:miro_ss:20200914163442p:plain

f:id:miro_ss:20200914163650p:plain

 

B9〜H9を下にコピーする。

f:id:miro_ss:20200916011748p:plain

f:id:miro_ss:20200916011807p:plain

 

選択中の月以外は空白にするようにしているので、見た目上は空白ですが、数式が入力されていれば大丈夫です。

 

 

日にちのみ表示する

このままでは年と月が表示されているので日にちのみ表示するようにしましょう。

  • B5〜H10を選択した状態で、
  • 「表示形式」、
  • 「数字」、
  • 「表示形式の詳細設定」、
  • 「カスタム数値形式」を選択

f:id:miro_ss:20200916012639p:plain



次のような画面が表示されるので、テキストボックスに「d」と入力して適用します。

f:id:miro_ss:20200916013403p:plain

 

これで選択した年月のカレンダー表示ができました。

f:id:miro_ss:20200916013637p:plain

 

 

最後に週ごとに予定などを入力できるように行を追加して、お好きな見た目に変更してみてください。

一応簡単に見た目を整えましたのでこれで完成とします。

f:id:miro_ss:20200916014732p:plain

 

 

お疲れ様でした。次回はこのカレンダーの日にちの下に「データ」タブから損益の情報を取得して表示していきます。

 

 

 

第1回 データ

miro-ss.hatenablog.com

第2回 カレンダー1

miro-ss.hatenablog.com

第3回 カレンダー2

miro-ss.hatenablog.com

第4回 集計

miro-ss.hatenablog.com

第5回 グラフ

miro-ss.hatenablog.com