エクセルで、日付から「日」だけを取り出すには DAY関数を使います。たとえば 2026/10/21 は、=DAY(A3) で 21 になります。
「年」は YEAR関数、「月」は MONTH関数で取り出せます。この記事では、DAY関数の基本、YEAR・MONTH関数との使い分け、その月の日数(月末の日)の出し方、日を2桁で表示する方法、月初の日付、前半・後半の判定、文字の日付の扱いまでを、1つの表で説明します。下の練習ツールで、日付を書き換えて結果の変わり方を試せます。
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
DAY関数の書き方
シリアル値には日付のセルを指定します。結果は 1〜31 の数値です。
DAY関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| 「日」を取り出す | =DAY(A3) | 21 |
| 「月」を取り出す | =MONTH(A4) | 10 |
| 「年」を取り出す | =YEAR(A5) | 2026 |
| その月の日数 | =DAY(EOMONTH(A6,0)) | 28 |
| 日を2桁で表示 | =TEXT(A7,”dd”) | 05 |
| その月の1日 | =A8-DAY(A8)+1 | 2026/10/1 |
| 前半・後半の判定 | =IF(DAY(A9)<=15,”前半”,”後半”) | 前半 |

日付から「日」を取り出す
結果は 21 です。結果のセルが日付の表示形式になって「1900/1/21」のように表示されたときは、表示形式を「標準」に戻します。
「年」「月」を取り出す(YEAR・MONTH)
「月」は 10、=YEAR(A5) で「年」は 2026 です(YEAR関数の使い方、MONTH関数の使い方)。
▶ この式(C4)を、上の練習ツールで試す / この式(C5)を、上の練習ツールで試す
その月の日数(月末の日)を出す
EOMONTH関数で月末の日付を求め、その「日」を取り出します。
2026年2月はうるう年ではないので、結果は 28 です。日割り計算などで使えます。
日を2桁で表示する
DAY関数の結果は数値なので、5日は「5」です。「05」と2桁にしたいときは TEXT関数を使います。
結果は 05(文字列)です(TEXT関数の使い方)。
その月の1日(月初)の日付を出す
日付から「日−1」日を引くと、その月の1日になります。
=A8-DAY(A8)+1
2026/10/21 から20日戻って 2026/10/1 です。結果のセルの表示形式は日付にします。DATE関数で =DATE(YEAR(A8),MONTH(A8),1) と書いても同じです(DATE関数の使い方)。
15日までか(前半・後半)を判定する
10日なので、結果は 前半 です。締め日で集計を分けるときに使えます。
文字の日付でも取り出せる
A10 の「2026/12/24」は文字として入っていますが、日付として読めるので結果は 24 です。日付として読めない文字は #VALUE! エラーになります。
DAY関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「1900/1/21」と表示される | 結果のセルが日付の表示形式 | 表示形式を「標準」にする。 |
| 「#VALUE!」になる | 日付として読めない文字が入っている | 日付として入力し直す。DATEVALUE関数で変換する。 |
| 空欄なのに 0 になる | 空欄は 0(1900/1/0)として計算される | IF(A3=””,””,DAY(A3)) のように空欄を除く。 |
| 日付の差(日数)がほしい | DAY関数は「日」を取り出すだけ | 日付どうしを引き算する。 |
DAY関数のよくある質問
曜日を取り出すには?
WEEKDAY関数か TEXT関数を使います(WEEKDAY関数の使い方)。
2つの日付の間の日数は?
新しい日付から古い日付を引き算します。結果のセルの表示形式は「標準」にします。
あわせて読みたい:日付の関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
