SUPってなに?
SUPってなに?
2019.12.18

基本から学べる!Excelで万年カレンダーを作成する方法

村上

Excelはなんとなく使えるけど……という方のために、まずはExcel入力時に押さえておきたい3つの基本ポイントから、作業効率をアップしてくれる3つのテクをピックアップ。

それらを活かして、本題の「万年カレンダー」がサクッとつくれるコツをご紹介しますので、新しい年や新年度を迎えるタイミングや、新規プロジェクトスタート時などにもぜひご活用ください!

※この記事は、2013年7月4日に公開された記事を、最新の状況をふまえて再編集したものです。



押さえておきたいExcelの3つの基本

基本1:Excel は計算できるもの(数値)と計算できないもの(文字列)に分けられる

文字列は日本語入力 ON で入力しますが、数値は日本語入力を OFF にして入力するのがベターです。 Enter キーを 2 回押す手間が省けるのと、慣れてきて関数などを直接入力するときのエラーを回避できるので、ぜひ最初の段階で日本語入力切り替えのクセ付けをしておきましょう。

基本2:計算式を作るには頭に「=」を入力する

半角英数で = を入力してから計算式を入力します。関数を入れるときも自動で = が入りますよね。自分で関数を入力するときも日本語入力を OFF にして = から入れていきます。

基本3:オートフィルができる

「文字が入っているセルをアクティブにして、右下の■上にマウスを載せ下方向にドラッグする」

オートフィルの対象となるのは月・日・曜日・数値 + 文字列などがオートフィル可能です。その他変わったものだと「子・丑・寅…」のような干支や、「甲・乙・丙…」のような十干などもオートフィルできます。

ステップアップ! 作業効率が上がる3つのテク

テク1:複数のセルに同時に同じ文字を入力できる

「最後に選んだセルに「-」を入力 セル確定する際に、Ctrl + Enter ( Mac : option + enter )」

たとえばゲーム表のように、対戦しない部分には「ー」を入力したい場合、もちろんコピー & ペーストでもいいのですが、 Ctrl キー + クリック( Mac : command + クリック)で離れたセルを複数選択して、一番最後のセルに「ー」を入力します。

確定のときに Ctrl + Enter ( Mac : option + enter )を押すと、複数選択していたセルにまとめて入力完了! そのまま中央揃えしてしまいましょう。

複数のセルへの入力が完了したエクセル画面

テク2:よく使う関数は直接入力

その日の日付を自動入力する Today 関数などは、 = today ( ) と入れてしまうと早いです。すべて半角英数で入力してくださいね。

テク3:名前をつけて保存はF12が早い

大事な書類をつくるときはすぐに名前をつけて保存。これは F12 を押すとすぐに上書き保存のダイアログボックスが表示されます。( Windows のみ)

万年カレンダーをつくってみよう

文字色の変更が完了したカレンダー

ここまで読んでくださった方に感謝を込めて、以下で万年カレンダーのつくり方をご紹介していきます。

万年カレンダーとは?

万年カレンダーとは、その名の通り万年使えるカレンダーのことです。 Excel の数式を活用してカレンダーを作成すると、毎月の日月の暦を正確に表示させることができます。一度つくり方に慣れてしまえば、今後長らく役に立つと思うので是非挑戦してみてください。

セルをカレンダーサイズに合わせる

「A行と1行の間にあるここをクリックするか Ctrl+Aで全セル選択 行の高さと列の幅をカレンダーっぽく調整する」

セルを全選択( Ctrl + A )または左上の全選択をクリックして、行の高さと列の幅をお好きなサイズに調整します。

年、月、曜日を入力します

年、月、曜日を入力したエクセルシート

月曜始まりにするか、日曜始まりにするかでこの後の関数が変わります。

今回は日曜始まりをつくっていきますね。

A1に西暦、C1に月を入力して、G1にDate関数を入れます

Date 関数は数字を日付に変換する関数で、「 = date (年,月,日)」と入力をします。

 
「= date ( A1,C1,1)」と入力したエクセルシート

今回は「 = date ( A1 のセル, C1 のセル, 1 )」と入れてその月の 1 日を G1 で常に表示させておきます。

 
Date関数をうすい色に設定したエクセルシート

この部分は計算に使うだけなので、文字の色を薄く(最終的には見えないように白)しておきましょう。

日曜日に始まる日付を計算します

先ほど入力した G1 の日付から、日曜日は何日かを計算して引き算をして、前の月の日付を計算します。
まず日曜日の日付を表示させるのに Weekday 関数を使います。

「 = weekday (日付,種類)」の順に入力しますが、

  • 日曜始まり→種類は省略可: = weekday ( G1 )
  • 月曜始まり→1と入力: = weekday ( G1, 1 )

という決まりがあるので、月曜始まりのカレンダーを作っている人は「 = weekday ( G1, 1 )」とする必要があります。気をつけましょう!

 
「=G1–weekday(G1)+1」を入力したエクセルシート

その月の始まりの日ー日曜日の日付で引き算をしてしまうと、その日 1 日分が足りなくなるので +1 で調整して「 = G1 – weekday ( G1 ) + 1 」となります。

これで日曜日の日付が求められるという仕組みです。

よくわからない人は間違えないように入力だけすれば OK ですよ。

日付だけの表示形式に変更しよう

日付の箇所に「2017/3/26」と表示されているエクセルシート

計算で求めると、 2017 . 3 . 26 と表示されてしまうので、日付の 26 だけが表示されるように形式を変更します。

 
セルの書式設定ダイアログ画面

リボンのセルの書式設定(または command + 1 )でセルの書式設定ダイアログを表示して、一番左の表示形式タブに切り替え、左側一覧からユーザー定義を選んで、種類の中に半角英数で「d」と入力します。

  • 年→ Y
  • 月→ M
  • 日→ D

という仕組みです。 01 などの 2 桁表示にしたい場合は DD と入力するとなりますよ。

文字の大きさもお好みで調整しておきましょう。

オートフィルで他の日付を完成させよう

B3に「=A3+1」と入力されたエクセルシート

B3 には A3 の日付 + 1 で次の日を求めます。 C3 から G3 まではオートフィルで自動計算。

 
B3に「=A3+1」と入力されたエクセルシート

A4 だけは、 G3 + 1 と再計算(もちろん A3 + 7 でも OK )を入力して、

 
B3に「=A3+1」と入力されたエクセルシート

B4 も同様に A4 + 1 としてからオートフィル。

ちょっと面倒ですがあともうちょっとです、がんばって!

 
完成したカレンダー

A4 から G4 を選択し、まとめて下方向にオートフィルしたらカレンダーとしては完成です!

4月じゃない部分は色を薄くしよう

このままだとどこからが 4 月かわかりにくいので、該当しない月の日付は薄く表示するように「条件付き書式」を使って設定します。

 

「条件付き書式」の設定画面

日付が入っている部分をすべて選択して、条件付き書式(「セルの強調表示ルール→日付→数式を使用して〜」を選択)ボックスの中に「 A3 の部分の月が、 C1 に入っている月以外だったら」という条件を組み立てたいので、「 = month ( A3 ) <> $C$1」と入力します。

このときに A3 に付いている $ マークは削除します( C1 はそのまま $C$1 で)。

条件付き書式の設定はなんだかおかしくて、カーソルを矢印キーで動かそうとすると、他のセルを拾いに行ってしまうので、面倒ですがマウスクリックで修正をしてください。

 

「=month(A3)<>$C$1」と入力された書式設定画面

書式ボタンをクリックして、文字の色を灰色にします(忘れやすいので注意!)




でーきあーがりー!

文字色の変更が完了したカレンダー

1行目の年と月を変えてみて、ちゃんと連動してカレンダーが変われば大成功です。

いかがですか? 万年カレンダーとしては使わないかもしれないですが、この下にメモ要素を追加して印刷用の予定表にしたり、関数って便利で面白いじゃん! という取っ掛かりになれば嬉しいです。

それでは。

おすすめのエクセル記事