【Excel2010】最小限の入力で自動作成するシフト表 第9回 シフトPart4 月末処理2【関数】

Excel_shift_eye

シフト部分の4回目、最終回となります。今回は、2月末の処理について紹介します。
通常年の30日の処理と、うるう年の判定処理を組み込んでいきます。

2月末の処理

30日の処理は、簡単です。

Excel_shift_day_005

30日が空欄になる月は、2月のみです。

=IF(MONTH($D$5)=3,"",DATE(YEAR(D5),MONTH(D5)-1,30))

“D5” セルの値を参照して、3月が入力されていれば空欄、それ以外は “30” を表示します。

2月29日の処理とうるう年の判定

29日は、通常年であれば空欄で良いのですが、うるう年には表示させておく必要があります。

Excel_shift_day_006<

ここでは、最も簡単なうるう年の判定法を使って、処理しています。

=IF(MONTH($D$5)=3,IF(TEXT(DATE(YEAR($D$5),3,1)-1,"d")="29",DATE(YEAR(D5),MONTH(D5)-1,29),""),DATE(YEAR(D5),MONTH(D5)-1,29))

IF関数が複数重なって少しわかりにくいですが、うるう年の判定法として、TEXT関数を使った判別法を用いています。

TEXT(DATE(YEAR($D$5),3,1)-1,"d")="29"

DATE関数で「”D5″ セルに入力された”年”の3月1日」のシリアル値を求め、そこから1日引いた”日付”をTEXT関数で文字列化します。その値が29かどうかを判断する方法です。

通常年であれば28が、うるう年であれば29が返ってきます。

全体としては、 “D5” セルの month(月)の値が3月ならば、うるう年判定をして “29” が返ってくれば “29” を表示、”29″ でなければ空欄、3月以外は “29” を表示、という内容になっています。

下段(次郎)の日付

下段の日付は、上段の日付を参照しているだけです。

Excel_shift_day_007

空欄も参照されますので、月末も上段の参照だけでOKです。

【Excel2010】最小限の入力で自動作成するシフト表 第1回【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第2回 日付Part1【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第3回 日付Part2 月末処理【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第4回 曜日Part1 平常日【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第5回 曜日Part2 月末処理【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第6回 シフトPart1 通常週【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第7回 シフトPart2 月度始め【関数】
【Excel2010】最小限の入力で自動作成するシフト表 第8回 シフトPart3 月末処理1【関数】

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする