WEEKDAY関数 エクセルの関数技2

来年の成人式は何日かを関数で

ハッピーマンデー制度で、連休が多くなるように、祭日が○月の第○月曜日というように成人の日、海の日、敬老の日、体育の日が月曜日に移動しました。
例えば、敬老の日の場合は、日にちは固定せず、9月の第3月曜日になったわけです。
そこで、○月の第○月曜日という情報から、日付を導く方法を関数で考えてみます。 今回は、「来年の成人式はいつか?」という問題です。
(サンプルファイルは、こちらから 関数技30回サンプルデータ

曜日をナンバーで返すWEEKDAY関数

「成人の日」を求める考え方

「成人の日」は1月の第2月曜ですね。
つまり「成人の日」は、1月8日~14日のいずれかになります。

そこで、「来年の成人式は何日か?」は、来年の1月8日~14日の中から、
月曜の日付を探せばよいのです。

候補となる日付データを作成します。

手順

(1)候補日を年月に変換
(2)候補日の曜日を調べる
(3)月曜日を取り出す
(1)候補日を年月に変換するには、DATE関数を使います。 =DATE(年,月,日)
E2セルに、表示します。年は、B1セルを、1月はそのまま1,日はD2セルを指定します。
=DATE(年,月,日) ですから、
表では、年はセルB1、月は1月で、日はD2となります。
=DATE(B1,1,D2)
DATE関数
今度は、F2セルでWEEK関数を使って曜日ナンバーーを取得しましょう。 引数に指定なし、あるいは1の時は、日曜が1から始まります。WEEKDAY関数
F2セルに
=WEEKDAY(E2,1)
と入力します。
 
式をオートフィルでコピーします。(B1セルは絶対表示)
月曜日は2ですから、2015/1/12が月曜日で成人の日だとわかります。
曜日に変換
スポンサーリンク
スポンサーリンク

(4)月曜日(成人の日)を空きセルに取り出してみましょう。
【G2から、G8に入れる式の考え方】
取り出す方法は、いくつかありそうですが、一番簡単な方法は、WEEKDAY関数で取り出した2を利用することです。 もし、F2セルが「2」ならば、E2の日付を表示する、2でない時は、何も表示しない。
ここでなぜ日付を表示するかといえば、シリアル値を必要としているからです。
 =IF(F2=2,E2,"")
あ
この式をG3からG8までコピーします。表は下図のようになります。

G2セルに「1月12日」と表示されます。

B2セルにB1セルに入力した年 成人の日の日付を表示させます。
式は以下のとおりです。=SUM(G2:G8)
1月12日と表示されているのは、見かけだけで、実際は日付を表すシリアル値42016が入っています。
どこに入っているかわかりませんが、SUM関数で合計すれば、42016をB2セルで得ることができます。

B1セルの年度を変えると、B2セルに対応した日付が表示されます。
B2セルに対応した日付
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク