【エクセルでカレンダー作成】VLOOKUP関数と条件付き書式でカレンダーを作りこむ

みなさん、こんにちはケンケンです。

 

エクセルを使ったカレンダー作成方法を複数回に分けてお届けしています。

前回の復習はこちらからお願いします。

 

今回は、VLOOKUP関数を使って行事欄に転記したり、条件付き書式を使って土日だけ色を変える方法をご紹介します。

カレンダー完成までいきますので頑張っていきましょう。

 

 

前回の復習

前回は、A~E列に諸々の仕掛けを作り、カレンダーの基礎部分を作りました。

 

それぞれの列は以下のようにしました。

A列・・・1~31まで数値を割り当てて日数分の行を用意する

B列・・・DATE関数を使って日付を表示する「=DATE($F$1,$H$1,A3)」

C列・・・MONTH関数を使って月を抜き出す「=MONTH(B3)」

D列・・・IF関数の条件分岐を使って作成したい月分のみの日数を書き出す「=IF(C3=$H$1,DATE($F$1,$H$1,A3),””)」

E列・・・TEXT関数を使って曜日を表示される「=TEXT(D3,”aaa”)」

 

今回は、F列以降と全体に仕掛けを作ります。

 

VLOOKUP関数を使って行事を表示してみよう

目当ての月のカレンダーを作成すると同時にその月の行事が日付と連動して表示されたら便利ですね。

その仕掛けをVLOOKUP関数を使って作っていきます。

 

その前に、VLOOKUP関数を使うためのイベント一覧リストを作成しておきましょう。

シート名は「イベント一覧」にしました。

 

A列に予定日をB列にイベント内容を記述しています。

 

これを元データとして、カレンダーのF3セルに以下のように数式を入力しF33までコピーします。

=VLOOKUP(D3,イベント一覧!$A$2:$B$4,2,0)

 

イベント一覧のA2~B4セルを固定参照するため絶対参照($A$2:$B$4)とします。

下図のようになっていれば成功です。

 

うまくイベントを転記することはできましたが、「#N/A」というエラーが出てしまっています。

 

これは、数式の参照先に値が見つからない時に表示されるエラーです。

資料を作る上では特に支障はないのですが、見栄えが悪いですね。

 

そこで、ISERROR関数を使ってエラー表示を消してしまいます。

ISERROR関数は参照するセルにエラーがあったらTRUE、なかったらFALSEを返す関数です。

 

上図のように試してみてください。

データが見つかってマッチするときはFALSEになって、見つからない時はTRUEになっていますね。

 

この性質を利用して、VLOOKUP関数を使ってTRUEになったとき、つまりエラーがあったときはセルを空白にし、FALSEになったときは、そのままVLOOKUP関数を使うという条件分岐を使えばよさそうです。

 

そこで先ほどの数式(=VLOOKUP(D3,イベント一覧!$A$2:$B$4,2,0))を変更して、

=IF(ISERROR(VLOOKUP(D3,イベント一覧!$A$2:$B$4,2,0)),””,VLOOKUP(D3,イベント一覧!$A$2:$B$4,2,0))

とします。

 

これでエラーが起こってもセルを空白にできます。

この数式をD33までコピーします。

 

他の月に変更しても同様にイベントが表示されることを確認しましょう。

 

この仕組みを作っておくと、実務で使う時も会社のイベント一覧を作っておけば後は勝手に表示されるので便利ですね。

 

条件付き書式を使って土日だけ色を変える方法

土日だけカレンダーの色を変えてみましょう。

条件付き書式を使います。

D3セルをクリックし、「条件付き書式」から「新しいルール」を選択します。

 

ボックスが開いたら「数式を使用して、書式設定するセルを決定」を選択しWEEKDAY関数を以下のように入力します。

WEEKDAY関数が分からない方は、以前の記事で復習してください。

 

数式を入力出来たら書式ボタンをクリックします。

 

セルの書式設定ボックスが開いたら色を選択して、OKボタンをクリックします。

 

そこまで出来たら、今度は下図のように「ルールの管理」を開き

 

ルール管理画面の適用先をカレンダー全体にします。

 

すると、カレンダー全体の土曜日の色が変更されます。

同様に日曜日の設定もします。

先ほどとやり方は同じですので、みなさん挑戦してみてください。

 

以下は、日曜日分も完成した状態です。

 

さらに、A~C列を非表示にして完成です。

 

 

まとめ

いかがでしたか。

関数や条件付き書式を駆使してカレンダーを作ることができました。

日付に関する関数をたくさん使ってきましたが、カレンダーを作るだけでなく実務の様々なシーンに合わせて使えるので、いつでも使えるようにしておきましょう。

 

次回からはVBAでさらに高性能なカレンダーを作っていく予定なのでお楽しみに。

それでは、また次回お会いしましょう。

 

カレンダーアプリ作成記事一覧

【エクセルでカレンダー作成】シリアル値の概念を知り日付関数の基礎をマスター

【エクセルでカレンダー作成】日付と曜日を表現する関数をマスターしよう

【エクセルでカレンダー作成】作業列を設けてカレンダー作りにとりかかる

【エクセルでカレンダー作成】VLOOKUP関数と条件付き書式でカレンダーを作りこむ

【エクセルVBA】VBAでカレンダーを作るときに最も重要な関数

【エクセルVBAでカレンダー作り】DoLoopとDateAdd関数を使って日付を書き出す方法

【エクセルVBAでカレンダー作り】OFFSETとVLOOKUPを使って検索抽出する方法

【エクセルVBA】別シートからカレンダーに行事を転記する方法

【エクセルVBA】カレンダーの土日だけ色を変える方法とRangeオブジェクトの応用的な使い方

【エクセルVBA】プロシージャをまとめてカレンダーを完成させよう