来年の成人式はの日付は何日か
WEEKDAY関数を使って祭日が何日かを割り出します。
EXCEL関数 30回
来年の成人式は何日かを関数で
ハッピーマンデー制度で、連休が多くなるように、祭日が○月の第○月曜日というように成人の日、海の日、敬老の日、体育の日が月曜日に移動しました。
例えば、敬老の日の場合は、日にちは固定せず、9月の第3月曜日になったわけです。
そこで、○月の第○月曜日という情報から、日付を導く方法を関数で考えてみます。
今回は、「来年の成人式はいつか?」という問題です。
(サンプルファイルは、こちらから 関数技30回サンプルデータ)
曜日をナンバーで返すWEEKDAY関数
「成人の日」を求める考え方
「成人の日」は1月の第2月曜ですね。
つまり「成人の日」は、1月8日~14日のいずれかになります。
そこで、「来年の成人式は何日か?」は、来年の1月8日~14日の中から、
月曜の日付を探せばよいのです。
候補となる日付データを作成します。
手順
(1)候補日を年月に変換
(2)候補日の曜日を調べる
(3)月曜日を取り出す
(1)候補日を年月に変換
(2)候補日の曜日を調べる
(3)月曜日を取り出す
(1)候補日を年月に変換するには、DATE関数を使います。
=DATE(年,月,日)
E2セルに、表示します。年は、B1セルを、1月はそのまま1,日はD2セルを指定します。
=DATE(年,月,日) ですから、
表では、年はセルB1、月は1月で、日はD2となります。
=DATE(B1,1,D2)
=DATE(年,月,日)
E2セルに、表示します。年は、B1セルを、1月はそのまま1,日はD2セルを指定します。
=DATE(年,月,日) ですから、
表では、年はセルB1、月は1月で、日はD2となります。
=DATE(B1,1,D2)
今度は、F2セルでWEEK関数を使って曜日ナンバーーを取得しましょう。引数に指定なし、あるいは1の時は、日曜が1から始まります。
F2セルに
=WEEKDAY(E2,1)と入力します。
式をオートフィルでコピーします。(B1セルは絶対表示)
月曜日は2ですから、2015/1/12が月曜日で成人の日だとわかります。
月曜日は2ですから、2015/1/12が月曜日で成人の日だとわかります。
(4)月曜日(成人の日)を空きセルに取り出してみましょう。
【G2から、G8に入れる式の考え方】
取り出す方法は、いくつかありそうですが、一番簡単な方法は、WEEKDAY関数で取り出した2を利用することです。 もし、F2セルが「2」ならば、E2の日付を表示する、2でない時は、何も表示しない。
ここでなぜ日付を表示するかといえば、シリアル値を必要としているからです。
【G2から、G8に入れる式の考え方】
取り出す方法は、いくつかありそうですが、一番簡単な方法は、WEEKDAY関数で取り出した2を利用することです。 もし、F2セルが「2」ならば、E2の日付を表示する、2でない時は、何も表示しない。
ここでなぜ日付を表示するかといえば、シリアル値を必要としているからです。
=IF(F2=2,E2,"")
この式をG3からG8までコピーします。表は下図のようになります。
G2セルに「1月12日」と表示されます。
B2セルにB1セルに入力した年 成人の日の日付を表示させます。
式は以下のとおりです。=SUM(G2:G8)
G2セルに「1月12日」と表示されます。
B2セルにB1セルに入力した年 成人の日の日付を表示させます。
式は以下のとおりです。=SUM(G2:G8)
1月12日と表示されているのは、見かけだけで、実際は日付を表すシリアル値42016が入っています。
どこに入っているかわかりませんが、SUM関数で合計すれば、42016をB2セルで得ることができます。
どこに入っているかわかりませんが、SUM関数で合計すれば、42016をB2セルで得ることができます。
B1セルの年度を変えると、B2セルに対応した日付が表示されます。
今日の講義は以上です。お疲れ様でした。