スプレッドシートのDAY関数の使い方|日を取得

スポンサーリンク

スプレッドシートで日付データを扱っていると、「日」だけを取り出したい場面がありますよね。たとえば「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つを使いこなして、日付データの集計や管理を効率化してみてください。

タイトルとURLをコピーしました