【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 として月末の処理について紹介します。

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

スポンサーリンク

シェアする

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

フォローする