www.wanichan.com

Microsoft Office全般(Excel/Word/PowerPoint/Access/Outlook/OneNote)の使用方法を解説。

「成人の日」「体育の日」などのハッピーマンデーの日付を求めたい

日付や時刻の疑問
  • このエントリーをはてなブックマークに追加
WEEKDAYとDATE関数を組み合わせて使います。

概要

「成人の日」や「体育の日」は第2月曜日、「海の日」「敬老の日」は第3月曜日になります。これらをExcelで求めるには、WEEKDAY関数とDATE関数を組み合わせて求めます。

 先月末日が日曜日の場合、第2月曜日は8日となります。また、先日末日が月曜日の場合は、第2月曜日は14日になります。つまり、第2月曜日は8日~14日までの間で変動することになります。この第2月曜日の日付をExcelで求めるには、WEEKDAY関数とDATE関数を組み合わせて利用します。

関数名書式説明
WEEKDAYWEEKDAY(シリアル値,種類)
  • 日付(シリアル値)から曜日に対応する値を数値で返します。
  • 「種類」には 1(日曜=1~土曜=7)、2(月曜=1~日曜=7)、3(月曜=0~日曜=6)のいずれかを指定します。省略すると1になります。
    種類(1~3)による曜日の値
    11234567
    21234567
    30123456
  • ここでは、先月末日の曜日を数値で求める場合に利用します。
DATEDATE(年,月,日)
  • 指定した日付を返すシリアル値を返します。
  • 「日」の引数にはWEEKDAY関数を組み合わせて数式を作成します。

 先月末日が月曜日の場合には最大値「14」を、火曜日以降は「14」から1ずつ減らしていった値が、第2月曜日の値となります。月曜日を基点として、火曜日、水曜日と引き算する値を1ずつ増やしていく処理には、WEEKDAY関数で対応できます。

 DATE関数の「日」の引数には、「14」からWEEKDAY関数で求めた先月末日の数値を差し引くことで、第2月曜日の日付を求めることができます。

先月末日の曜日と第2月曜日との関係
先月末日
第2月曜日141312111098
差分0123456

 ここでは、「14」からの引き算で日付を求めるので、先月末日が月曜日の場合には、WEEKDAY関数で「0」を返す必要があります。よって、引数「種類」には「3」を指定します。ちなみに、先月末日の値を求めるには、DATE関数の「日」の引数を「0」にするとよいでしょう。第2月曜日の「日」の数値だけを求める場合は以下の数式で成り立ちます。

14-WEEKDAY(DATE(年,月,0),3)
             先月末日

 DATE関数の「日」の引数に以上の数式をあてはめると、第2月曜日の日付(シリアル値)が得られます。

=DATE(年,月,14-WEEKDAY(DATE(年,月,0),3))

 一方、第3月曜日の場合は、21から先月末日の曜日の数値を差し引くことにより求めることができます。

=DATE(年,月,21-WEEKDAY(DATE(年,月,0),3))

操作方法

成人の日を求める

  1. 成人の日を求めるセルをクリックし[関数の挿入]ボタンをクリックします。
  2. 日付/時刻関数の中からDATE関数を呼び出します。
  3. [年]の引数には年の数値が入ったセル(A1)を指定します。
  4. [月]には「1」と入力します。
  5. [日]には「14-WEEKDAY(DATE(A1,1,0),3)」と入力します。

体育の日を求める

体育の日の場合、DATE関数の[月]の引数ボックスに「10」と入力して、あとは成人の日と同様に求めます。

海の日を求める

海の日は7月の第3月曜日なので、以下のように求めます。

敬老の日を求める

敬老の日の場合、DATE関数の[月]の引数を「9」に指定し、あとは海の日と同様に求めます。

シリアル値から日付に表示形式を変える

日付がシリアル値として表示されてしまう場合は、セルの書式設定にて表示形式を「日付」にします。

2008年のそれぞれの日付を求めてみる

年を「2008」に指定すると、このようにそれぞれ日付が変化することが確認できます。

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

コメント

※技術的な質問はMicrosoftコミュニティで聞いてください!

▲このページのトップへ