SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Enterprise IT Women's Forum

2025年1月31日(金)17:00~20:30 ホテル雅叙園東京にて開催

Security Online Day 2025 春の陣(開催予定)

2025年3月18日(火)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

60秒でできる!Microsoft Excel Tips集

【Excel Tips】成人の日や体育の日などのハッピーマンデーの日付を求めるには?

日付と時刻のTips(4)


「成人の日」「海の日」「敬老の日」、および「体育の日」は、年によって日付が変わります。今回は、第2月曜日、第3月曜日の日付の求め方を紹介します。

概要

 「成人の日」と「体育の日」は第2月曜日、「海の日」と「敬老の日」は第3月曜日になります。

サンプルファイル
サンプルファイル
先月末日が日曜日の場合
  1 2 3 4 5 6
7 8 9 10 11 12 13
先月末日が土曜日の場合
1 2 3 4 5 6 7
8 9 10 11 12 13 14
先月末日が火曜日の場合
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
先月末日が月曜日の場合
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19

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

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

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

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

先月末日の曜日と第2月曜日との関係
先月末日
第2月曜日 14 13 12 11 10 9 8
差分 0 1 2 3 4 5 6

 ここでは、「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))

 本稿では、成人の日や体育の日を「第2月曜日」、海の日や敬老の日を「第3月曜日」として、それぞれの日付を求める方法を紹介します。

操作手順

第2月曜日を求める方法

 ここでは例として、成人の日の求め方を紹介します。

  1. サンプルファイル「sample.xls」を開きます。
  2. A4セルを選択して、[関数の挿入]ボタンをクリックします。
  3. [関数の挿入]ダイアログボックスで、DATE関数を検索します。
  4. [関数の引数]ダイアログボックスでは、以下のようにDATE関数のそれぞれの引数ボックスに入力します。
    • :年が入ったセル(A1)を選択
    • :1
    • :14-WEEKDAY(DATE(A1,1,0),3)
関数の引数 - 第2月曜日
↓
成人の日が求められた結果画面

 A4セル(成人の日)の数式は以下の通りです。

=DATE(A1,1,14-WEEKDAY(DATE(A1,1,0),3))

 体育の日(B5セル)の場合の数式は以下のようになります。

=DATE(A1,10,14-WEEKDAY(DATE(A1,10,0),3))

第3月曜日を求める方法

 ここでは例として海の日の求め方を紹介します。

  1. A6セルを選択して、[関数の挿入]ボタンをクリックします。
  2. [関数の挿入]ダイアログボックスで、DATE関数を検索します。
  3. [関数の引数]ダイアログボックスでは、以下のようにDATE関数のそれぞれの引数ボックスに入力します。
    • :年が入ったセル(A1)を選択
    • :7
    • :21-WEEKDAY(DATE(A1,7,0),3)
関数の引数 - 第3月曜日
↓
海の日が求められた結果画面

 A6セル(海の日)の数式は以下の通りです。

=DATE(A1,7,21-WEEKDAY(DATE(A1,7,0),3))

  敬老の日(A7セル)の数式は以下の通りです。

=DATE(A1,9,21-WEEKDAY(DATE(A1,9,0),3))

 

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
60秒でできる!Microsoft Excel Tips集連載記事一覧

もっと読む

この記事の著者

小濱 良恵(コハマ ヨシエ)

Microsoft MVP for Expression (April 2008 - March 2009)
Microsoft Office や Expression Web の書籍やWeb記事を執筆するテクニカルライター。
当初は派遣の仕事が中心で、2002年にMOUS(現Mic...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/854 2008/12/04 11:35

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング