エクセル 特別 実践コーナ6

中級・特別編トップへ

   特 別・スケジュール表を作ろう(6)
  祝日・休日名の設定(4)
  祝日・休日名の設定(5)    

 

祝日・休日名の設定(4)

今回は、第8回目です。
今回は、敬老の日と秋分の日を設定します。ところが9月は、年によって、この両祝日に挟まれる国民の休日が出現します。本来であれば、これも設定しなければならないのですが、説明が非常に面倒です。
とりあえず両祝日を先に一度設定しておいて、第9回目で一部を修正し、国民の休日を入れる方法を取ります。(9回目は、この段に続けて加筆・修正し、転載しています。)

 

9月シートの設定

(28) 9月シートの設定
・敬老の日
 敬老の日は、海の日と同じく今年から第三月曜日(これまでは15日)に変更されました。第三月曜日は、15日〜21日までの間ですから、該当するE18セルからE24セルへ関数式を入力します。

 

まず、図のようにE18セルへ 「 =IF(B18="月","敬老の日","")」と入力し、E24セルまでオーフィルでコピーしてください。

B列(B18〜B24)が「月」の場合、E列摘要欄に「敬老の日」と表示されるはずです。


・秋分の日
 秋分の日は、春分の日と同じく一定期間の秋分日を計算する簡易計算法が確立されています。下記はその計算法で秋分の日をワークシート関数で表したものです。
1980〜2099年までの期間は、A1に西暦年が入力されているとして、
=INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))」となります。
この式で、その年の秋分の日を求めることができます。(9月X日のXを求めることができます)

さて、前ページの春分の日の設定で解説したように、この種の判定式は、名前の定義を利用した方が簡単で便利です。メルマガ上では、通常の方法を主体に解説しましたが、ここでは、名前の定義で解説します。


挿入(I)⇒名前(N)⇒定義(D)から左図の名前の定義ダイアログボックスへ、上記で解説した秋分日を求める式を入力します。名前を「秋分日」とします。
このとき必ず、参照の「A1」は、
$A$1」と絶対参照にします。そうしないと定義できません。

これで、名前の定義を利用して数式を組むことができます。(なお、入力はメモ帳などからコピー&ペーストした方が手早いです。ボックス内で式を入力するのは結構面倒なものです。)

秋分の日は、具体的には、9月22日〜24日のうちの1日です。まず、22日に該当する摘要欄E25セルへ
名前の定義を利用した以下の式
=IF(A25=秋分日,"秋分の日","")」と入力します。
この式は、求めた秋分日がA25セル(22)と同じであれば、秋分の日と表示させ、そうでない場合は、空白を返すようにしたものです。

次にE25セル以降ですが、23日、24日、25日は前日が春分の日でかつ日曜日であった場合、振替休日になります。ですからE25セルの式とは異なります。春分の日と振替休日の両方を判定させる必要があります。それを組み入れると以下のようになります。
E26セルは、下図のように
=IF(A26=秋分日,"秋分の日",IF(AND(E25="秋分の日",B25="日"),"振替休日",""))」となります。

この式は、はじめに名前の定義の式で秋分日かどうか判定をさせ、そうであった場合は、秋分の日を返させ、前日が秋分の日でかつ日曜日であった場合は、振替休日を返させています。両方に該当しない場合は、空白を返させるようにしています。

E27セルは
=IF(A27=秋分日,"秋分の日",IF(AND(E26="秋分の日",B26="日"),"振替休日",""))」とします。式の構成はE26と同じなのでE26をE27へオートフィルでコピーすればOKです。

次に、E28セルは替休日だけなので
=IF(AND(E27="秋分の日",B27="日"),"振替休日","")」となります。

 

ここから下は、メルマガ上での第9回目です。上記式の一部を修正して、国民の休日を設定します。

・国民の休日
 先頭で説明したように、現行祝日法では、祝日と祝日に挟まれた日は、国民の休日となります。9月は、年によって敬老の日秋分の日に挟まれる日が出現し、国民の休日となります。
敬老の日は、15日〜21日の間の月曜日。秋分の日は、22日〜24日のうちの1日ですから、この両祝日に挟まれる可能性がある日は、21日22日ということになります。
21日は、20日が敬老の日で22日が秋分の日の場合。22日は、21日が敬老の日で23日が秋分の日の場合に国民の休日となります。

21日に該当する摘要欄E24セルには、すでに以下の式が入っています。
=IF(B24="月","敬老の日","")
これの、引数で空白を返すようにしている偽の処理のところへ
IF(AND(E23="敬老の日",E25="秋分の日"),"国民の休日","")」を加えます。
この式は、前日が敬老の日で、翌日が秋分の日であれば「国民の休日」を返し、そうでなければ空白を返しなさいとなっています。この式を加えると、以下のようになります。
=IF(B24="月","敬老の日",IF(AND(E23="敬老の日",E25="秋分の日"),"国民の休日",""))

上図のように修正してください。

また、22日に該当する摘要欄E25セルには、すでに以下の式が入っています。
=IF(A25=秋分日,"秋分の日","")
これに、上記で追加した式の参照先を変えた以下の式を用意します。
IF(AND(E24="敬老の日",E26="秋分の日"),"国民の休日","")
この式を加えると
=IF(A25=秋分日,"秋分の日",IF(AND(E24="敬老の日",E26="秋分の日"),"国民の休日",""))
となりますが、実はこのままではエラーとなり、エクセルがエラーメッセージを出す場合があります。その場合は、敬老の日かどうかで判定させるのではなく、B24セルが「月」かどうかで判定させるよう以下のように修正します。
=IF(A25=秋分日,"秋分の日",IF(AND(B24="月",E26="秋分の日"),"国民の休日",""))」です。

これで、エラーの回避ができます。
なお、エラーを回避するには、ツール(T)のオプションから計算方法タブで、「反復計算」にチェックを入れても回避可能です。

 

今回はここまでです。
2009,2015,2026,2032,2037,2043,2049,2054,2060,2071,2077,2088,2094,2099の年は、9月に国民の休日が現れる年です。表示年を切り替えて確認してください。

 

先頭へ戻る

 

 

 

祝日・休日名の設定(5)

 今週は10回目です。順調に進んでいますか。あと3〜6回くらいか?と思います。

 

10〜12月シートの設定

(29) 10月シートの設定
・体育の日
 体育の日は10月の第二月曜日です。第二月曜日といえば、成人の日と同じです。10月シート上では、セル番地B11〜B17になります。日付で言えば8日〜14日までです。
これらのセルが月曜日の時、摘要欄に「体育の日」と表示させる設定を行います。まず、E11摘要欄にIF関数の数式を入力します。
=IF(B11="月","体育の日","")」と入力します。

 

これでB11が「月」であれば「体育の日」と表示され、「月」でなければ空白が返されます。

次に、E11から下へE17までこの式をオートフィルでコピーしてください。B列が「月」の場合、E列摘要欄に「体育の日」と表示されるはずです。


(30)11月シートの設定
・文化の日
 文化の日は、11月3日です。日指定の祝日ですから、摘要欄E6セルに直接「文化の日」と入力します。
さて、日指定の祝日は、日曜日にあたると翌日が休日になりますので、振替休日の設定が必要です。
E7セルにIF関数で設定をします。 
E7セルへ「=IF(B6="日","振替休日","")」と入力します。

これで、B6が「日」であれば「振替休日」と表示され、「日」以外であれば、空白が返されます。

・勤労感謝の日
 勤労感謝の日は、11月23日です。文化の日と同じく日指定の祝日ですから、摘要欄E26セルに直接「勤労感謝の日」と入力します。
次に、文化の日と同じように振替休日の設定をします。
E27セルにIF関数で設定をします。 


E27セルへ「=IF(B26="日","振替休日","")」と入力します。

これで、B26が「日」であれば「振替休日」と表示され、「日」以外であれば、空白が返されます。

(31)12月シートの設定
・天皇誕生日
 天皇誕生日は、12月23日です。同じく日指定の祝日ですから、12月シートの摘要欄E26セルに直接「天皇誕生日」と入力します。
同じく日指定の祝日ですから、日曜日にあたると翌日が休日になります。振替休日の設定をします。
E27セルにIF関数で設定をします。 


E27セルへ「=IF(B26="日","振替休日","")」と入力します。

これで、B26が「日」であれば「振替休日」と表示され、「日」以外であれば、空白が返されます。

 

祝日・休日名表示は終わりです。
これで、摘要欄に祝日・休日名を表示させる設定は終りです。表示年を切り替えて、正しく表示されるかどうか、チェックしてください。
次回から、この祝日・休日の日は条件付き書式で、日と曜日欄のフォントと背景色を変える設定をします。

 

   先頭へ戻る   

中級・特別編トップへ

Excel(エクセル)学習室 HOME


KENZO30 内容の無断転載は禁止しています