概要
「月初から何日経過しているか」を一瞬で出すなら、DAY関数が最短です。DAYは“その月の何日目か”を返すので、実質「月初からの経過日数(1始まり)」になります。たとえば 2025/12/17 なら DAY=17、つまり月初から17日経過。0始まりが欲しい場合は DAY-1 を使います。
基本の使い方
書式
=DAY(日付)
日付にはセル参照、DATE、TODAYなどが使えます。戻り値は 1〜31 の整数で、その月の「日」を表します。
例
=DAY("2025/12/17") // 17(12月17日は月初から17日目)
=DAY(TODAY()) // 今日が月の何日目か(1始まり)
具体例
セル参照で「月初からの経過日数(1始まり)」
=DAY(A2)
A2が 2025/12/17 なら結果は 17。
0始まりで経過日数を取りたい(経過“満日数”)
=DAY(A2)-1
A2が月初なら 0、2日なら 1 といった“満日数”になります。
数式で月初を明示して計算(同値の別表現)
= A2 - (EOMONTH(A2,-1)+1) + 1
「当月の月初日」を引いて+1する形。結果は DAY(A2) と同じになります。
応用テンプレート
月初から今日までの経過日数(1始まり)
=DAY(TODAY())
月初から今日までの“満”経過日数(0始まり)
=DAY(TODAY())-1
当月の合計日数
=EOMONTH(TODAY(),0) - (EOMONTH(TODAY(),-1)+1) + 1
その月の日数(28〜31)を返します。
当月の進捗率(%表示にすると便利)
=DAY(TODAY()) / (EOMONTH(TODAY(),0) - (EOMONTH(TODAY(),-1)+1) + 1)
「月のうち何割進んだか」を取得(表示形式をパーセンテージに)。
よくあるつまずきと対策
DAYは“1始まり”
DAYは常に 1〜31 を返します。0始まりの“満経過日数”が必要なら必ず「-1」を付けてください。
時刻が入っていても大丈夫
日時(NOW)を渡しても、DAYは「日付部分のみ」を見ます。時刻は無視されます。
文字列日付の解釈
「YYYY/MM/DD」を文字列で渡すと環境依存で誤解釈の可能性があります。セルを“日付”として入力するか、DATEで生成しましょう。
月初日そのものが欲しい場合
「月初日」は EOMONTH(日付,-1)+1 で取得できます。月末は EOMONTH(日付,0)。
例題
問題1: A2の日付が「月の何日目」か(1始まり)をB2に表示してください。
=DAY(A2)
問題2: A2の日付について、月初からの“満経過日数”(0始まり)をC2に表示してください。
=DAY(A2)-1
問題3: 今日が「月の何日目」かをD2に表示してください。
=DAY(TODAY())
問題4: 今日までの月進捗率(0〜100%)をE2に表示してください(%表示)。
=DAY(TODAY()) / (EOMONTH(TODAY(),0) - (EOMONTH(TODAY(),-1)+1) + 1)
問題5: F2の日付について、「数式で月初を明示して」経過日数(1始まり)をG2に表示してください。
=F2 - (EOMONTH(F2,-1)+1) + 1
まとめ
「月初からの経過日数」は DAY が最短ルートです。1始まりか0始まりかを決め、必要に応じて EOMONTH と組み合わせれば“月初・月末・当月日数・進捗率”まで一貫して扱えます。レポートやダッシュボードでは、DAYを基点に“0始まり”や“進捗%”へ派生させる設計がシンプルで強力です。
