【Excel2010】最小限の入力で自動作成するシフト表 第4回 曜日Part1 平常日【関数】

Excel_shift_eye

前回で日付の表示が完了しましたので、第4回目となる今回は、曜日の表示について紹介していきます。

曜日の表示

曜日の表示は、日付から曜日を算出する「WEEKDAY関数」がありますので、比較的簡単に表示させることが可能です。
難しいところといえば、月末処理の方法です。

表示方法の条件は以下の通り。

  • 日付のシリアル値をもとに、曜日を算出。
  • 31日までない月の月末処理は、日付と同様に空欄とする。
  • うるう年の自動判定と2月末の処理。

曜日欄の表示

日付の回と同様に、20日締め形式の表ですので、1日~20日までを入力フォームで入力した月、21日~31日までを前月として考えていきます。

1日~20日まで

Excel_shift_week_001

DATE関数を使って、シリアル値を取得し、WEEKEND関数で曜日を数値化して算出しています。

=WEEKDAY(DATE(YEAR($D$5),MONTH($D$5),DAY(O8)),1)

取得したシリアル値から、WEEKEND関数の出力形式を指定する引数 “1” を指定して算出した値を各セルに表示します。

WEEKEND関数の出力形式は、以下のようにいつか種類が選べます。

  • 引数 “1” のとき 1(日曜日)~ 7(月曜日)
  • 引数 “2” のとき 1(月曜日)~ 7(日曜日)
  • 引数 “3” のとき 0(月曜日)~ 6(日曜日)

出力される値は、1 ~ 7 のただの数値の状態です。

Excel_shift_week_001_01

「セルの書式設定」で、曜日の表示にします。
「表示形式」タブの「ユーザー定義」で、” aaa ”と入力すると曜日の表示になります。

21日~31日まで

Excel_shift_week_002

21日~31日までは、前月となります。

=WEEKDAY(DATE(YEAR($D$5),MONTH($D$5)-1,DAY(K8)),1)

DATE関数の月の値を ” MONTH($D$5)-1 ” として、前月のシリアル値から算出します。
「$D$5」と絶対値にしておくと、複数セルへのコピペが楽です。

下段(次郎)の日付

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

Excel_shift_week_006

日付の時と同様、空欄も参照されますので、月末も上段の参照だけでOKです。
通常の曜日表示は、以上の処理で行います。

月末処理の方法については、日付の時と同様に、うるう年判定や空欄処理をする必要があります。
次回 Part2 として月末の処理について紹介します。

スポンサーリンク

シェアする

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

フォローする

スポンサーリンク