こんにちは。ひとりで.comです。
今日は、日付から曜日を調べる関数について紹介したいと思います。
WEEKDAY関数で日付から曜日を調べる
WEEKDAY関数の用法
WEEKDAY関数はMicrosoftの解説ですと以下のように書かれています。
日付に対応する曜日を返します。 既定では、戻り値は 1 (日曜) から 7 (土曜) までの範囲の整数となります。
=WEEKDAY(シリアル値,[週の基準])
WEEKDAY 関数の書式には、次の引数があります。
シリアル値:必ず指定します。 検索する日付のシリアル値を指定します。 日付は、DATE 関数を使って入力するか、他の数式または他の関数の結果として指定します。 たとえば、2008 年 5 月 23 日を入力する場合は、DATE(2008,5,23) を使用します。 日付を文字列として入力した場合、エラーが発生することがあります。
週の基準:省略可能です。 戻り値の種類を数値で指定します。
週の基準 | 戻り値 |
1 または省略 | 1 (日曜) ~ 7 (土曜) の範囲の整数 |
2 | 1 (月曜) ~ 7 (日曜) の範囲の整数 |
3 | 0 (月曜) 〜 6 (日曜) の範囲の整数 |
11 | 1 (月曜) ~ 7 (日曜) の範囲の整数 |
12 | 1 (火曜) ~ 7 (月曜) の範囲の整数 |
13 | 1 (水曜) ~ 7 (火曜) の範囲の整数 |
14 | 1 (木曜) ~ 7 (水曜) の範囲の整数 |
15 | 1 (金曜) ~ 7 (木曜) の範囲の整数 |
16 | 1 (土曜) ~ 7 (金曜) の範囲の整数 |
17 | 1 (日曜) ~ 7 (土曜) の範囲の整数 |
実際の使い方を図で解説
それでは、実際にWEEKDAY関数をどのように使うのか図で解説していきたいと思います。
まずは例として下記のような表があったとします。その日付に応じて曜日を表す数値を抽出するにはWEEKDAY関数を用います。
このC列に対して曜日を表す数値を入れていくことにしましょう。
上記のように
=WEEKDAY(B3)
と入れることによって返り値「6」を得ることができます。第二引数を省略しているので、「1」から日曜日を表す事になっています。すなわち「6」ということは金曜日を表しています。2016年1月1日は金曜日でしたので、数値としてはあってますね。
このように、WEEKDAY関数を使うと、曜日に対応した数値を返り値として得ることができます。
WEEKDAY関数を使う際の注意点
(1)そもそも曜日は「月火水」のような文字列では現れない。
お気づきの通り、このWEEKDAY関数単体では実用的な関数ではありません。これは、そもそもExcel上の日付…が1900年1月1日を基準として内部的には数値で表されているからです。すなわち、1900年1月1日=1、1900年1月2日=2、という形です。
WEEKDAY関数ではこの数値を7で割ったあまり値を出すことによって、曜日を数値で表しているというわけです。
(2)シリアル値が現在の日付基準値の範囲外の場合は、#NUM! エラーが返されます。
シリアル値とは、上記で説明した日付を表す数値の事を指しています。指定範囲外の数値になるとエラーが返ってきます。
(3)週の基準が上の表に示す範囲に含まれない場合は、#NUM! エラーが返されます。
何曜日はじまりにするか…という値に関して、規定以外の数値を入れるとエラーが返ってきます。