
「STEP1:月末の表示を工夫編」に続いて、このSTEP2では、カレンダーに祝日が表示されるようにします!
このページは、「エクセルでカレンダー作成」のSTEP2です。
下記の赤いボタンをクリックすると、目次ページからご覧いただけます。
祝日一覧の作成
これから、カレンダーに祝日が表示されるようにしていくわけですが、
その際に必要なのが祝日の一覧。
さすがのExcelさんも、日本の祝日にはどんなものがあって、それが何月何日なのかなんてことまでは知らないので、こちらで祝日一覧を作る必要があるんです。
この祝日一覧の作り方は「エクセルで祝日一覧の作り方【Excel 活用術】」でご紹介していますので、そちらをご覧いただきながら引き続き設定をしていきます。
(移動先のページでは、操作を終えた後、またここに戻ってこれるようになっていますので、安心して手順どおり進めてください。)
カレンダーに祝日を表示させる
「エクセルで祝日一覧の作り方【Excel 活用術】」での操作で、祝日一覧が完成しました。
ここでは、その「エクセルで祝日一覧の作り方【Excel 活用術】」のページで、一覧の見出しを除くセル範囲に名前を定義する際、その名前を「祝日」と定義したとして話を進めていきます。
それでは、カレンダー作成の続きを操作していきますので、カレンダーがあるシートの見出しをクリックして、シートを切り替えます。
早速、カレンダーに祝日名が表示されるように設定していきましょう。
祝日名を表示させる欄の先頭であるD4番地には、B4番地の日付が、
祝日の一覧表に定義した、「祝日」という名前の範囲にあるかを照らし合わせ、もしあった場合には、その2列目に入力されている祝日名を表示させたいと思います。
一覧表と照らし合わせて、該当していた場合には、その表から指定の項目を表示させる、そう、そんな処理をしてくれるVLOOKUP関数を使います!
VLOOKUP関数の設定はこのようになるので、
このように数式を組み立てることになります。
ちなみに、「ただし、きっかり一致するものだけを探してね」の部分は、「0」ではなく「FALSE」と入力してもOKなのですが、それも含め、VLOOKUP関数について詳しく知りたい方は、ぜひ「VLOOKUP関数【キッカリ検索編】」をご覧ください。
ところが、この数式を実際にD4番地に入力すると、エラーが出てしまいます。
それは、探し出しの基準となるB4番地の日付が、
祝日の一覧表に無いから。
VLOOKUP関数では、該当するものがない場合、このようなエラーが表示されるので、この数式だと、祝日ではない日すべてにエラーが表示されてしまうことになります。
(実際にこの数式を入力してエラーが出ることを確認してくださった方は、[元に戻す]ボタンで数式を入力する前の状態に戻しておいてください。)
でも、このようなエラーは表示されないようにしたい!
そこで登場するのがIFERROR関数!
「IFERROR」の2文字目は「S」ではなく「F」です。
「もし〜だったら」の「IF」と、「エラー」の文字がくっついて、「IFERROR」です。
IFERROR関数の設定はこのようになるので、
このように数式を組み立てることになります!
というわけで、この数式を、
答えを表示させたいD4番地を選択し、
=IFERROR(VLOOKUP(B4,祝日,2,0),"")
と、手入力しても構いませんし、「関数の中に関数!関数の入れ子」でご紹介しているように、ダイアログボックスを使って数式を入力したい場合には、次の章のように操作します。
ちなみに、数式を手入力することにした方は、数式を入力後、そのD4番地には何も表示されず、一瞬ドキッとしますが、後で解説しますので、気にせず次の次の章「もうすぐ完成!「祝日」欄」にお進みください。
スポンサーリンク
ダイアログボックスを使って数式を入力する
それでは、ここまでまとめた数式を、ダイアログボックスを使って入力してみることにしましょう!
答えを表示させたいD4番地を選択し、[関数の挿入]ボタンをクリックします。
関数を指定するためのダイアログボックスが表示されます。
この時、IFERROR関数を選ぶべきなのか、VLOOKUP関数を選ぶべきなのか悩んだりしますが、ポイントは「結果として表示させたい関数を先に選ぶ」です。
答えとして表示させたいのは、日付が祝日だった場合には、その祝日名ですし、祝日じゃなかったら空欄を表示させたいわけですから、これらを切り分けて表示させるIFERROR関数を選びます。
[関数の分類]で「すべて表示」を選択し、[関数名]欄で「IFERROR」を選択。
[OK]ボタンをクリックします。
ちなみに、この一覧から「IFERROR」を選択する際、「IFERROR」の頭文字である「I」のところまで、一瞬でスクロールする技を使うと便利です。
前のダイアログボックスで「IFERROR」を選択して[OK]ボタンをクリックすると、このようなダイアログボックスが表示されます。
まず[値]欄には、エラーになるかどうかを判定してほしい、その計算内容を指定します。
今回は、このVLOOKUP関数の数式でエラーになるか、ならないかを判定してほしいわけですから、このVLOOKUP関数の数式を、
IFERROR関数の[値]欄に設定していくことになります。
[値]欄に文字カーソルがあることを確認したら、数式バーの左端にある[▼]をクリックすると、
最近使った関数が一覧表示されます。
この一覧の中に「VLOOKUP」があれば、クリックで選択します。
(この一覧の中に「VLOOKUP」があった方は次の図の、関数を選択するダイアログボックスでVLOOKUP関数を選択する操作は不要なので、次の次の図から操作を続けてください。)
もし、一覧の中に「VLOOKUP」がない場合には、単純に最近使っていないというだけなので、一覧の一番下にある「その他の関数」をクリックで選択すると、
関数を選択するダイアログボックスが表示されるので、この一覧から「VLOOKUP」を選択し、[OK]ボタンをクリックします。
すると、先ほどまでIFERROR関数のものだったダイアログボックスが、VLOOKUP関数のものに変わり、数式バーに表示されている数式も、IFERROR関数の中にVLOOKUP関数が入っていることが分かります。
この時、VLOOKUP関数のダイアログボックスの最後の欄あたりの文字が重なって、おかしなことになっていても、まったく気にする必要はありません。
Excelさんはこの時にすねてるんだ位に思ってもらって、放置します。
それではVLOOKUPの[検索値]から設定していきましょう!
この欄には、どのデータを一覧表と照らし合わせたいのかを指定します。
今回はB4番地の日付を、祝日の一覧表と照らし合わせたいわけですから、[検索値]欄に文字カーソルがある状態で、
B4番地をクリックすると、[検索値]欄に「B4」と指定することができました!
[検索値]の欄の指定が終わったので、次の欄の指定に入ります。
[検索値]の欄に文字カーソルがある状態で、キーボードの[Tab]キーをポンッと押すと、
次の[範囲]欄に文字カーソルを移すことができました!
この[範囲]欄には、照らし合わせたい祝日の一覧表が、どのシートのどのセル範囲にあるのかを指定します。
でもですね〜、ここで超長い祝日の一覧表を範囲選択しなくていいよう、祝日一覧を作ったときに、一覧表のデータ部分に名前を定義しておいたわけです!
ですので、この[範囲]欄には、その定義しておいた名前を指定すればいいので、[F3]キーをポンッと押すと、
この文書内に設定されている名前の一覧が表示されます。
といっても、この文書で、範囲に名前をつけたのは1つしかないので、1つしか表示されませんが。
というわけで、祝日の一覧表につけた名前、「祝日」をクリックで選択し、[OK]ボタンをクリックすると、
[範囲]欄に、祝日の一覧表の範囲名を設定することができました!
[範囲]の欄の指定が終わったので、次の欄の指定に入ります。
[範囲]の欄に文字カーソルがある状態で、キーボードの[Tab]キーをポンッと押すと、
次の[列番号]欄に文字カーソルを移すことができました!
この[列番号]欄には、[検索値]で指定したB4番地の日付を、[範囲]で指定した一覧表「祝日」と照らし合わせた結果、もしその日付が一覧表にあった場合には、一覧表の何列目のデータを表示させるかを指定します。
今回は祝日名を表示させたいわけですから、祝日名は、一覧表「祝日」の2列目に表示されているので、
[列番号]欄に「2」と入力します。
最後は[検索方法]欄。
この欄には、[検索値]で指定したB4番地の日付を、一覧表「祝日」と照らし合わせる際、B4番地の日付ときっちり同じ日付を探し出すのか、それとも、その日に近い日付でいいのかを指定します。
今回は、B4番地の日付と、一覧表の日付がきっちり一致した場合にその祝日名を表示させたいわけですから、この欄には「きっちり同じものを探してね」という意味の「0」を指定します。
ちなみに、この「きっちり同じものを探す」「近いものを探す」の違い、そしてこの欄には「FALSE」と入力してもOKなのですが、それらについて詳しく知りたい方は、ぜひ下記のページをご覧ください。
- VLOOKUP関数【キッカリ検索編】(本家 Be Cool Users)
- VLOOKUP関数【あいまい検索編】(本家 Be Cool Users)
さぁ、これでVLOOKUP関数はすべての欄の指定が終わったので、現在のVLOOKUP関数のダイアログボックスから、元のIFERROR関数のダイアログボックスに戻りましょう!
数式バーに表示されている数式で、「IFERROR」の文字の部分をクリックすると、
ダイアログボックスがVLOOKUP関数のものからIFERROR関数のものに切り替わりました!
ここで[値]欄に注目!
ここまでの操作で、VLOOKUP関数の数式でエラーになるか、ならないかを判定してくれるよう、[値]欄に設定することができました!
最後に、残りの[エラーの場合の値]欄の設定をします。
[エラーの場合の値]欄でクリックすると、この欄に文字カーソルを入れることができます。
この欄には、上の[値]欄の数式でエラーになった場合に表示させたいものを指定します。
今回、[値]欄で指定したVLOOKUP関数の数式でエラーが出るということは、祝日ではないという意味ですから、その場合には空欄を表示させたいので、
「空欄」を意味するダブルクォーテーション2つを入力します。
もちろん、数式内で使う記号は半角というのもお約束なので、ダブルクォーテーションは2つとも半角で入力します。
さぁこれで、すべての欄の指定は終わりです。
最後にダイアログボックス右下の[OK]ボタンをクリックしましょう。
数式を入力したはずなのに、D4番地には何も表示されず、一瞬ドキッとしますが、それは次の章で解説しています!
気にせず読み進めてください!
スポンサーリンク
もうすぐ完成!「祝日」欄
手入力にしろ、ダイアログボックスを使う方法にしろ、数式を入力したD4番地には、結果が何も表示されないので、一瞬ドキッとしますが、数式を入力したD4番地を選択した状態で数式バーを見ると、ちゃんと数式が入力されていることがわかります。
VLOOKUP関数でエラーだった場合、つまり祝日ではなかった場合には空欄が表示されるように設定してあるので、空欄になっているわけですね。
残りのセルにも、オートフィルで数式をコピーします。
数式を入力したD4番地を選択し、選択したセルの右下に表示されるポッチにマウスポインタを合わせ、マウスポインタの形が図のような十字の形になったら、ダブルクリックします。
オートフィルの際、隣のC列にデータが入力されているので、長々とドラッグしなくても、ダブルクリックでのオートフィルが可能です。
祝日に該当する場合には、その祝日名が表示されるようになりました!
そして、オートフィルした直後は、この祝日欄のD4番地からD34番地が範囲選択されている状態なので、
このまま、おなじみの中央揃えにすれば、
この後の操作で、列幅を広げた時に、配置が整った印象にできます。
うまく動くか確認してみよう!
ここで、祝日を表示させるために設定した数式がうまく機能するか確認してみましょう!
D1番地の月を「11」に変更してみます。
ちなみに、D1番地に設定したドロップダウンリストの[▼]は、D1番地を選択しないと表示されないので、D1番地の選択を忘れずに。
B1番地に入力した年、D1番地で選択した月の、祝日の表示に切り替わりました!
ちなみに選択した11月は、下旬に「勤労感謝の日」があり、この祝日の名前が、1年の祝日の名前の中で一番長い文字のようです。
そこで、この祝日の名前が表示されている状態で、列幅を広くしておきましょう。
祝日名が表示されているD列の、列番号の右側にマウスポインタを合わせ、マウスポインタの形が図のような両矢印の形になったら、ダブルクリックすると、その列にある一番長い文字に合わせて列幅を調整できます。
列幅を広げることができました!
うまく動くことが確認でき、更に列幅を調整することもできたので、次の操作に進んでいくのですが、その前にD1番地の月を「5」に変更しておきます。
5月は、祝日が多く、さらに31日まである月なので、設定した結果を確認しやすく、設定漏れを無くすことができるからです。
さぁ、祝日も表示されるようになって、いよいよカレンダーらしくなってきました!
次の「STEP 3:土日祝日に色をつける編」では、土曜・日曜、そして祝日のセルに色をつける方法をご紹介します!