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

中級・特別編トップへ

   特 別・スケジュール表を作ろう (3)
  曜日表示の設定

 

 

曜日表示の設定

2回目までの作業は順調に進んでいますか?それとも何だこんな簡単なスケジュール表なのかとガッカリされた方もいるかもしれませんが。。では、今週は3回目です。

 

曜日を表示させる関数を入力

(13) 各シートの調整(グループ化解除状態)
 
1月〜12月の各シートごとに、A2とB2セルの結合(A2)へ下図のように、順次1〜12の数字を入れます。


フォントのサイズと種類は、自分の好みで入力。あくまで数字であり、月を入れないように。

また、(9)で入力した各シートの余計な日付を削除します。2月は29、30、31を4月、6月、9月、11月は、31をDeleteキーで削除します。

 

(14) 1月、3月、5月、7月、8月、10月、12月のシートをグループ化します。
 
離れているシートをグループ化するには、Ctrlキーを押してそれぞれのシートを選択します。

 

(15) 曜日欄に関数入力(1月、3月、5月、7月、8月、10月、12月グループ化状態)
 日付から曜日を表示させる関数を入力します。下図のように、まずB4セルに
=TEXT(DATE($A$1,$A$2,A4),"aaa")」と入力します。

 

これで曜日が表示されまず。
関数は、和暦表示の関数と同じで、TEXT関数にDATE関数をネストさせています。

DATE関数の引数、A1は絶対参照で年を参照、A2も絶対参照で月を参照、A4相対参照で日を参照しています。これで、オートフィルで日の31(B34)までコピーします。オートフィルでコピーすることにより、A4だけが変化し左側の日を参照します。
"aaa"は、曜日の表示形式で、曜日の頭文字を表示します。"aaaa"とすると「水曜日」と表示されます。ここでは、先頭文字だけで十分でしょう。オートフィルすると自動的に曜日が表示されるはずです。
これで、グループ化した1月、3月、5月、7月、8月、10月、12月のシートに曜日が表示されているはずです。

 

(16) グループ化を解除します。
 
方法は、前回と同じく右クリックからグループ化の解除を選択します。

 

(17) 4月、6月、9月、11月をグループ化し曜日欄に関数入力
 
Ctrlキーを押してそれぞれのシートを選択します。これで同じくB4セルに、
=TEXT(DATE($A$1,$A$2,A4),"aaa")」と入力し、日の30(B33)までオートフィルでコピーします。これで、グループ化した4月、6月、9月、11月のシートに曜日が表示されるはずです。

 

(18) 2月シートの作業(閏年ほか)
 
上記のグループ化を解除し、2月シートのB4セルへ、「=TEXT(DATE($A$1,$A$2,A4),"aaa")」と上記と同じ関数を入れます。そして、日の28(B31)までオートフィルでコピーします。

さて、ここで閏年のことが気になりませんか?
2月は数年に一度29日が存在する閏年があります。ここで、その設定をしましょう。つまり閏年の年は、29を表示させるように関数で設定します。

・閏年とは
 地球が太陽を一周する間に、地球は自転を365.24219回します。そのため、1年365日との誤差を数年に一度、修正する必要があります。これが2月を29日にさせる閏年です。
閏年の判定は少し面倒ですが、このスケジュール表は、2099年までなので、この間は西暦年を4で割り切れれば閏年ということになります。(詳しくは、下の【参考】閏年についてを参照)

・閏年を判定する関数を入力
 そこで、下図のようにA32へ「=IF(MOD(A1,4)=0,29,"")」と関数を入れます。


MOD関数は、割り算の余りを求める関数ですから、4で割ってそれが0であれば、つまり割り切れればという意味です。

これがIF関数の論理式になっているので、割り切れれば閏年ということになり、その場合は29を返し、そうでなければ空白を返しなさいという式になっています。

・曜日を取得する関数を入力
 曜日を取得する関数は、これまで入力したもののままでは、A32が空白(閏年でない)の場合エラー値になります。そこで、以下のようにIF関数で処理します。A32セルが空白の場合は、空白を返すようにしたものです。「=IF(A32="","",TEXT(DATE($A$1,$A$2,A32),"aaa"))


左図のように、B32へこのまま入れてください。

これで閏年の場合だけ、曜日を返します。

今回は、ここまでです。案内シートで年を切り替えて、曜日が切り替わるかどうか確認してください。かなり形になってきたかな?

 

【参  考】

閏年について
閏年は、グレゴリオ暦(通常使っているカレンダー)では、以下のように定義されています。
1.西暦年を4で割り、割り切れるときは閏年とする。(4年単位)
2.ただし、その西暦年が100で割り切れる場合は、閏年としない。(100年単位)
3.しかし、100で割り切れても400で割り切れる年は閏年とする。(400年単位)

A1に西暦年があるとして、Excelの関数であらわせば
=OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0))」がTRUEの年ということになります。
(以前の判定式は、2004/7/19修正しました。ご容赦!)

万年暦を作成するのであれば、上記の式が必要ですが、今回作成するカレンダーは、2099年までですから上記の1をクリアすれば閏年ということになります。

 

   先頭へ戻る   

中級・特別編トップへ

Excel(エクセル)学習室 HOME


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