日付関数の練習問題を10問用意しました。DATE・MONTH・TEXT(曜日)・日数の差・DATEDIF(年齢)・EDATE(○か月後)・EOMONTH(月末)・WORKDAY(営業日後)・NETWORKDAYS(平日の日数)・WEEKDAY(土日の判定)まで、仕事でよく使う日付の計算を順番に練習できます。
問題と解答が入った練習用のファイルを無料でダウンロードできます。答えはすべて実際の Excel で計算して確かめています。
練習用ファイルの使い方
- 練習用のファイルをダウンロードして開き、「問題」シートを表示します。
- 黄色のセル(E4:E13)に、問題に合う式を入れます。C列(入力1)・D列(入力2)の日付を使います。
- 「解答」シートで、答えと式を確かめます。

問題の一覧
| No. | 問題 | 入力1 | 入力2 |
|---|---|---|---|
| 1 | 年(C列)と月(D列)から、その月の1日の日付を作ってください。 | 2026 | 11 |
| 2 | 日付(C列)から「月」を取り出してください。 | 2026/10/24 | |
| 3 | 日付(C列)の曜日を「土」のように出してください。 | 2026/10/24 | |
| 4 | 開始日(C列)から終了日(D列)まで、何日あるか(差)を出してください。 | 2026/10/1 | 2026/10/24 |
| 5 | 生年月日(C列)から、基準日(D列)時点の年齢を出してください。 | 1990/4/25 | 2026/10/24 |
| 6 | 日付(C列)の1か月後の日付を出してください。 | 2026/1/31 | |
| 7 | 日付(C列)の月の末日を出してください。 | 2026/2/10 | |
| 8 | 日付(C列)から、土日を除いて3営業日後の日付を出してください。 | 2026/10/23 | |
| 9 | 開始日(C列)から終了日(D列)までの平日の日数を出してください。 | 2026/10/1 | 2026/10/31 |
| 10 | 日付(C列)が土日なら「休日」、それ以外は「平日」と出してください。 | 2026/10/25 |
まずは自分で解いてみてから、下の解答と解説を見てください。
問題1の解答と解説
問題:年(C列)と月(D列)から、その月の1日の日付を作ってください。
=DATE(C4,D4,1)
答え:2026/11/1 ヒント:DATE(年,月,日) で日付を作ります。
DATE(2026,11,1) で 2026年11月1日の日付になります。答えのセルは日付の表示形式にしておきます(DATE関数の使い方)。
問題2の解答と解説
問題:日付(C列)から「月」を取り出してください。
=MONTH(C5)
答え:10 ヒント:年は YEAR、日は DAY で取り出せます。
2026/10/24 の月は 10 です。年は YEAR、日は DAY で同じように取り出せます(MONTH関数)。
問題3の解答と解説
問題:日付(C列)の曜日を「土」のように出してください。
=TEXT(C6,"aaa")
答え:土 ヒント:TEXT の表示形式 “aaa” で曜日になります。
2026/10/24 は土曜日です。”aaaa” にすると「土曜日」、”ddd” にすると「Sat」になります(日付の表示形式)。
問題4の解答と解説
問題:開始日(C列)から終了日(D列)まで、何日あるか(差)を出してください。
=D7-C7
答え:23 ヒント:日付は数値なので、引き算で日数が出ます。
10/24 − 10/1 で 23 です。試したところ、答えのセルが日付の表示形式のままだと「1900/1/23」と表示されました。日数を出すときは、表示形式を「標準」か「数値」にします。両端の日を含めた日数なら +1 して 24 です。
問題5の解答と解説
問題:生年月日(C列)から、基準日(D列)時点の年齢を出してください。
=DATEDIF(C8,D8,"Y")
答え:36 ヒント:DATEDIF(開始日,終了日,”Y”) で満年数です。
1990/4/25 生まれの人は、2026/10/24 時点で 36 歳です。DATEDIF の “Y” は満年数で、”M” なら満月数(この例では 437)、”MD” なら月未満の日数(29)です(年齢をDATEDIFで計算する方法)。
問題6の解答と解説
問題:日付(C列)の1か月後の日付を出してください。
=EDATE(C9,1)
答え:2026/2/28 ヒント:EDATE は月末をはみ出すと、その月の末日に合わせます。
1/31 の1か月後は「2/31」が無いので、EDATE はその月の末日の 2/28 に合わせます。試したところ、DATE(YEAR,MONTH+1,DAY) で作ると、2/31 が繰り越されて 2026/3/3 になりました(○か月後の日付)。

問題7の解答と解説
問題:日付(C列)の月の末日を出してください。
=EOMONTH(C10,0)
答え:2026/2/28 ヒント:EOMONTH(日付,0) でその月の末日、1 で翌月の末日です。
EOMONTH(日付,0) で、その月の末日(2026/2/28)です。翌月の末日(2026/3/31)なら 1、前月の末日(2026/1/31)なら -1 にします(月末の日付を出す方法)。
問題8の解答と解説
問題:日付(C列)から、土日を除いて3営業日後の日付を出してください。
=WORKDAY(C11,3)
答え:2026/10/28 ヒント:WORKDAY は土日を飛ばして数えます。
2026/10/23 は金曜日なので、土日を飛ばして 10/26(月)・10/27(火)・10/28(水)と数え、3営業日後は 10/28 です。祝日は3つ目の引数に祝日の一覧を指定しないと飛ばしません。試したところ、10/9(金)の1営業日後は、祝日(スポーツの日)の 10/12(月)になりました。
問題9の解答と解説
問題:開始日(C列)から終了日(D列)までの平日の日数を出してください。
=NETWORKDAYS(C12,D12)
答え:22 ヒント:NETWORKDAYS は開始日と終了日も含めて数えます。
2026年10月の平日は22日です。開始日と終了日も含めて数えます。試したところ、単純な引き算(終了日−開始日+1)では31日になりました(営業日数を数える方法)。

問題10の解答と解説
問題:日付(C列)が土日なら「休日」、それ以外は「平日」と出してください。
=IF(WEEKDAY(C13,2)>=6,"休日","平日")
答え:休日 ヒント:WEEKDAY(日付,2) は月曜が1、土曜が6、日曜が7です。
2026/10/25 は日曜日なので「休日」です。WEEKDAY の2つ目の引数を 2 にすると、月曜が1〜日曜が7になり、6以上で土日を判定できます。試したところ、2つ目の引数を省くと日曜が 1 になり、「平日」と判定されました(WEEKDAY関数)。
よくある間違い

実際に試した、よくある間違いの例です。上(問題4)は答えのセルが日付の表示形式のままで「1900/1/23」と表示され、下(問題6)は DATE で月に1を足したため 3/3 になりました。
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 日数が「1900/1/23」のように出る | 答えのセルが日付の表示形式 | 表示形式を「標準」にする(問題4)。 |
| 1か月後が翌々月の日付になる | DATE で月に1を足して、月末がはみ出した | EDATE を使う(問題6)。 |
| 土日の判定が合わない | WEEKDAY の2つ目の引数を省いた(日曜が1) | WEEKDAY(日付,2) にする(問題10)。 |
| 祝日も営業日に数えられる | 祝日の一覧を指定していない | WORKDAY・NETWORKDAYS の最後の引数に祝日の範囲を指定する(問題8)。 |
よくある質問
祝日も除いて数えたいときは?
祝日の日付を並べた範囲を作り、=WORKDAY(C11,3,祝日の範囲) や =NETWORKDAYS(C12,D12,祝日の範囲) のように最後の引数に指定します(2026年の祝日一覧)。
今日の日付で計算したいときは?
入力の日付の代わりに TODAY() を使います。たとえば年齢なら =DATEDIF(C8,TODAY(),"Y") です。開くたびに今日の日付で計算し直されます(TODAY関数)。
ほかの関数の練習問題もありますか?
IF関数・COUNTIF・SUMIF関数・VLOOKUP関数・XLOOKUP関数の練習問題があります。

コメント