スプレッドシートで日付データを扱っていると、「日」だけを取り出したい場面がありますよね。たとえば「2026/3/19」から「19」だけを抜き出したいのに、うまくいかない。手作業でひとつずつ入力するのも現実的ではありません。
そんなときに使えるのが DAY関数 です。この記事では、DAY関数の基本から実務で役立つ活用パターンまでまとめて紹介します。
DAY関数とは?できることを30秒で理解しよう
DAY関数は、スプレッドシートの日付から 「日」の部分だけを整数で取り出す 関数です。
たとえば「2026/3/19」を渡すと「19」が返ります。返り値は 1〜31の整数 です。
名前のとおり「Day=日」を取得する、とてもシンプルな関数ですね。
「年」を取り出すYEAR関数の使い方(年を取り出す関数)も合わせて覚えておきましょう。「月」を取り出すMONTH関数の使い方(月を取り出す関数)と3つセットで使うと、日付操作の幅がぐっと広がりますよ。
DAY関数の基本構文と使い方
書き方と引数の説明
DAY関数の構文はとてもシンプルです。
=DAY(日付)
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 日付 | 必須 | 「日」を取り出したい日付を指定する |
引数はひとつだけ。セル参照や日付関数の結果を渡せます。
セルに入力した日付から「日」を取り出す
もっとも基本的な使い方です。セルA1に「2026/3/19」と入力されている場合、次の数式で「19」が返ります。
=DAY(A1)
日付が入ったセルを指定するだけなので、迷うことはありません。
TODAY()と組み合わせて今日の「日」を取得する
TODAY関数の使い方(今日の日付を返す関数)と組み合わせると、常に「今日が何日か」を自動取得できます。
=DAY(TODAY())
今日が3月19日なら「19」が返ります。ファイルを開くたびに自動更新されるので、日次の管理表でぜひ使ってみてください。
YEAR・MONTH・DAYの3関数をセットで覚えよう
3関数の比較表
日付を分解する3つの関数をまとめて確認しましょう。
| 関数 | 引数 | 返り値 | 主な用途 |
|---|---|---|---|
| YEAR(日付) | 日付値1つ | 年(例: 2026) | 年だけ抽出・年での集計 |
| MONTH(日付) | 日付値1つ | 月(1〜12) | 月だけ抽出・月別集計 |
| DAY(日付) | 日付値1つ | 日(1〜31) | 日だけ抽出・締め日判定 |
3つとも引数は日付ひとつだけ。返り値が「年・月・日」のどれかという違いだけです。
「年・月・日」をバラバラに取り出して別セルに表示する
A1に「2026/3/19」が入っている場合、次のように3つの関数を並べれば、年・月・日を別々のセルに分解できます。
| セル | 数式 | 結果 |
|---|---|---|
| B1 | =YEAR(A1) | 2026 |
| C1 | =MONTH(A1) | 3 |
| D1 | =DAY(A1) | 19 |
集計やフィルタで「月だけ」「日だけ」を条件にしたいとき、ぜひこの方法を試してみてください。
実務で使える3つのユースケース
ユースケース1:日付データから「日」だけを抽出して集計する
売上データなどで「毎月15日の売上だけを合計したい」というケースです。A列に日付、B列に売上が入っているとします。
=SUMPRODUCT((DAY(A2:A100)=15)*B2:B100)
SUMPRODUCT関数(条件に合う行の値を合計する関数)とDAY関数を組み合わせています。DAY関数で「日」を取り出し、15日に一致する行だけ売上を合計しています。締め日ベースの集計にそのまま使えますよ。
ユースケース2:毎月固定日の日付をDATE関数で自動生成する
「毎月25日」の支払日を自動で作りたい場合、DATE関数の使い方(年・月・日を指定して日付を作る関数)と組み合わせます。
=DATE(YEAR(TODAY()), MONTH(TODAY()), 25)
YEAR関数とMONTH関数で今の年月を取得し、日を「25」に固定しています。月が変わっても自動で更新されるのがポイントですよ。
ユースケース3:当月の残り日数をEOMONTHと組み合わせて計算する
EOMONTH関数(指定月の末日を返す関数)を使うと、当月の残り日数を計算できます。
=EOMONTH(TODAY(),0)-TODAY()
EOMONTH(TODAY(),0) で当月末の日付を取得し、今日の日付を引いています。タスク管理や納期計算で「あと何日あるか」をパッと確認できます。
ちなみに、当月が何日あるかを知りたいときはDAY関数を組み合わせます。
=DAY(EOMONTH(TODAY(),0))
当月末の「日」を取り出せば、その月の日数がすぐわかりますよ。
よくあるエラーと対処法
数字(シリアル値)が返ってきてしまうときの対処
DAY関数自体は正しく動いているのに、セルの表示が「2026/3/19」のような日付形式になってしまうケースがあります。
これはセルの書式が「日付」になっているだけです。対処はシンプルで、セルを選択して 「表示形式」→「数字」→「数値」 に変更してください。
DAY関数の返り値は1〜31の整数なので、書式を数値にすれば正しく表示されます。
文字列の日付を入力するとエラーになる
DAY関数に文字列を渡すと #VALUE! エラーが出ることがあります。
よくあるのは、他のシステムからコピーした日付がテキストとして貼り付けられているケースです。この場合はDATEVALUE関数(日付形式の文字列を日付値に変換する関数)を使います。
=DAY(DATEVALUE(A1))
A1が文字列の「2026/3/19」でも、DATEVALUEで日付値に変換してからDAYに渡せば正常に動作します。
また、数式で直接日付を書くときの注意点がひとつ。=DAY(10/10/2000) のように書くと、スプレッドシートは「10÷10÷2000」という 割り算 として計算します。結果は0.0005になり、DAY関数は「0日目=30」を返してしまいます。
日付を直接指定するときは =DAY("2026/3/19") のようにダブルクォーテーションで囲むか、DATE関数を使いましょう。
=DAY(DATE(2026,3,19))
まとめ:DAY関数はYEAR・MONTHとセットで使いこなそう
DAY関数の要点を振り返りましょう。
- 構文:
=DAY(日付)— 引数ひとつで「日」を取り出す - 返り値: 1〜31の整数
- YEAR・MONTHと3点セットで覚えると日付操作が自在になる
- 実務での活用: 締め日集計、固定日の自動生成、残り日数の計算
- エラー対策: 表示形式の確認、文字列にはDATEVALUE関数を使う
日付を扱う業務では、DAY関数の出番はかなり多いです。YEAR・MONTH・DAYの3つを使いこなして、日付データの集計や管理を効率化してみてください。
