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

中級・特別編トップへ

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

 

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

今回は、第6回目です。
この回数は、メルマガ上での連載番号ですから、ページの「スケジュール表を作ろう」の番号とは異なります。なお、メルマガ上での誤字・脱字及び誤記は、転載時に修正するよう努めていますが、修正できていないところがあるかもしれません。お気付きの方は、遠慮なく掲示板等でお知らせください。

祝日表示の設定は、関数を使っています。慣れていない方にはちょっと面倒ですが、頑張ってください。

 

3月シートの設定

メルマガに掲載したものの他に、名前の定義を使う方法を追加しました。

(24) 3月シートの設定
・春分の日
 祝日の中で、春分の日と秋分の日は、日を特定できない特殊な祝日です。祝日法では、国立天文台の観測に基き、官報による告示で決定されることになっています。
しかし、将来の春分日・秋分日は求めることができないのかというと、そうでもありません。地球と太陽が今と同じ動きをすると仮定すれば、計算で予想することができます。実は、一定期間の春分日・秋分日を計算する簡易計算法というものがあるのです。下記はその計算法で春分の日をワークシート関数で表したものです。
1980〜2099年までの期間は、A1に西暦年が入力されているとして、
=INT(20.8431+0.242194*(A1-1980)-INT((A1-1980)/4))」となります。
この式で、その年の春分の日を求めることができます。(3月X日のXを求めることができます。)

具体的には、春分の日は19日〜21日のうちの1日になります。
まず、下図のように3月のシート上で、19日に該当する摘要欄E22セルへ
=IF(A22=INT(20.8431+0.242194*(A1-1980)-INT((A1-1980)/4)),"春分の日","")」と入力します。

この式は、求めた春分日がA22セル(19日)と同じであれば、春分の日と表示させ、そうでない場合は、空白を返すようにしたものです。

次にE23セル以降ですが、20日、21日、22日は、前日が春分の日でかつ日曜日であった場合、振替休日になります。そのため、E22セルの式とは異なります。春分の日と振替休日の両方を判定させる必要があります。それを組み入れると以下のようになります。
E23セルは
=IF(A23=INT(20.8431+0.242194*($A$1-1980)-INT(($A$1-1980)/4)),"春分の日",IF(AND(E22="春分の日",B22="日"),"振替休日",""))」となります。(図の式は強制改行しています)

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

E24セルは
=IF(A24=INT(20.8431+0.242194*($A$1-1980)-INT(($A$1-1980)/4)),"春分の日",IF(AND(E23="春分の日",B23="日"),"振替休日",""))」とします。式の構成はE23と同じなので、式内のA1を絶対参照にしておいて、E23E24オートフィルでコピーすればOKです。

次に、E25セルは替休日だけなので
=IF(AND(E24="春分の日",B24="日"),"振替休日","")」となります。

 

名前の定義の利用

ここで、メルマガでは紹介しなかった名前の定義を利用する方法を紹介しておきます。
上記方法はメルマガで紹介したそのままの式ですが、ちょと式が長く面倒です。それは、春分の日の判定式が長いためです。そこで春分の日の判定式を、名前の定義に置き換えてみましょう。

 

挿入(I)⇒名前(N)⇒定義(D)から左図の名前の定義ダイアログボックスへ、上記で解説した春分日を求める式を入力します。名前を「春分日」とします。

これで、名前の定義を利用して数式を組むことができます。(入力する式の参照は、絶対参照$A$1」とします。)

E22セルへ入力した
=IF(A22=INT(20.8431+0.242194*(A1-1980)-INT((A1-1980)/4)),"春分の日","")」は、
=IF(A22=春分日,"春分の日","")」と表すことができます。式内の「春分日」は、名前の定義名なので、文字列の引数に使う「""」で囲む必要がありません。実に簡単になります。

また、E23セルへ入力した
=IF(A23=INT(20.8431+0.242194*($A$1-1980)-INT(($A$1-1980)/4)),"春分の日",IF(AND(E22="春分の日",B22="日"),"振替休日",""))」は、
=IF(A23=春分日,"春分の日",IF(AND(E22="春分の日",B22="日"),"振替休日",""))」と表すことができます。

E24セルの式も上記の式と同じく、簡単に表すことができます。E23E24オートフィルでコピーしてください。

 

年リストを切り替え、春分の日振替休日が表示されるかどうか確認してください。2005年、2010年で確認できます。

春分日、秋分日について
一般的には、昼と夜の長さがほぼ同じ日とされています。
『国立天文台の解説』
太陽は星々の間を移動していて、その通り道を「黄道」といいます。また、地球の赤道を天にまで延長したものを「天の赤道」といいます。黄道と天の赤道は、お互いが傾いているために2点で交わり、その交点のうちの一方を「春分点」、もう一方を「秋分点」と呼びます。そして、太陽が春分点・秋分点の上を通過する瞬間がそれぞれ「春分」「秋分」と定義され、「春分」「秋分」を含む日のことを、それぞれ「春分日」「秋分日」と呼ぶのです。

 

先頭へ戻る

 

 

 

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

今回は、第7回目です。
さて、祝日の設定を1月〜3月まで行いましたが、実は現在、祝日法改正の動きがあるのです。6月18日まで開かれる第156回の今国会で、祝日法改正法案が通りそうなのです。内容は、4月29日を「昭和の日」、5月4日を「みどりの日」とし、また振替休日についても定義を変えようというものです。
この問題については、下の【参  考】祝日法改正についてをご覧ください。詳しいHPを紹介しています。なお、改正されたされた場合は別途、メルマガで設定方法を説明します。

 

4月〜7月シートの設定

(25) 4月シートの設定
・みどりの日
 とりあえず、現行のみどりの日で設定します。みどりの日は29日で固定された休日なので、E32セルへ「みどりの日」と入力してください。そしてE33セルへ振替休日の設定をします。これは、2月の建国記念の日の設定と同じです。
図のように、E33セルへ「=IF(B32="日","振替休日","")」と入力します。

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

(26) 5月シートの設定
・憲法記念日
 憲法記念日は3日で固定された休日ですから、E6セルへ「憲法記念日」と入力します。

・こどもの日
 こどもの日も5日で固定された休日ですから、B8セルへ「こどもの日」と入力します。
5日(こどもの日)が日曜日の場合、6日が振替休日になります。みどりの日等と同じです。
そこで、E9セルへ「=IF(B8="日","振替休日","")」と入力します。

・国民の休日
 国民の休日とは、祝日法によれば祝日に挟まれた日(日曜日を除く)です。5月では、4日がこれに当たります。ただし、その日が日曜日の場合は国民の休日とは言いません。
図のようにB7セルへ、「=IF(B7<>"日","国民の休日","")」と入力します。

これで、B7が日以外の場合のみ「国民の休日」と表示されます。式内の「<>」は不等号を表す記号です。

(27) 7月シートの設定
・海の日
 海の日は、今年から第三月曜日(これまでは20日)に変更されました。第三月曜日は、15日〜21日までの間ですから、下図のようにE18セルからE24セルへ関数式を入力します。

 

まず、E18セルへ「=IF(B18="月","海の日","")」と入力し、E24セルまでオーフィルでコピーしてください。これで設定完了です。

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

 

【参  考】

祝日法改正について
祝日法の改正が第162国会で可決/成立しました。平成17年5月20日に公布され、平成19年1月1日から施行されます。このことで詳しく解説されている方のHPを紹介します。ここへ行けば改正のことからカレンダーのことがすべて判ります。
エクセル界でカレンダーというとこの方
HN名:天魔さん、天魔博士と呼ばれています。
HP名:Addin Box
http://www.h3.dion.ne.jp/~sakatsu/index.htm

祝日法改正については
http://www.h3.dion.ne.jp/~sakatsu/holiday_topic3.htm

です。じっくり勉強してみてください。天魔さん、勝手に紹介しました。ご容赦!! m(__)m

 

   先頭へ戻る   

中級・特別編トップへ

Excel(エクセル)学習室 HOME


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