<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EDATE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/edate%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:48:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>EDATE関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのEOMONTH関数の使い方｜Nヶ月後の月末日付を自動取得</title>
		<link>https://mashukabu.com/spreadsheet-eomonth-function/</link>
					<comments>https://mashukabu.com/spreadsheet-eomonth-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 10:56:36 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[EOMONTH関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[支払期日]]></category>
		<category><![CDATA[日付計算]]></category>
		<category><![CDATA[月末日付]]></category>
		<category><![CDATA[締め日]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4321</guid>

					<description><![CDATA[スプレッドシートのEOMONTH関数の使い方を基本から解説。当月末・翌月末・Nヶ月後の月末日を自動取得する方法、TODAY関数との組み合わせ、月末締め・翌月末払いの支払期日の自動計算、EDATE関数・DATE関数との使い分けまで実務例で紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「月末締め・翌月末払い」の支払期日、毎回カレンダーを見て手入力していませんか？</p>



<p class="wp-block-paragraph">月末日は28日・30日・31日と月ごとに変わります。スプレッドシートで手入力していると、うるう年の2月などでミスが起きやすいですよね。</p>



<p class="wp-block-paragraph">Googleスプレッドシートの<strong>EOMONTH関数</strong>を使えば、Nヶ月後の月末日を自動で取得できます。月末の日数を覚えておく必要はありません。</p>



<p class="wp-block-paragraph">この記事では、EOMONTH関数の基本から実務での活用パターンまで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのEOMONTH関数とは？月末日を自動取得する関数</a><ol><li><a href="#toc2" tabindex="0">構文と引数</a></li><li><a href="#toc3" tabindex="0">月数に0を指定すると当月末になる</a></li></ol></li><li><a href="#toc4" tabindex="0">EOMONTH関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">翌月末を取得する（月数=1）</a></li><li><a href="#toc6" tabindex="0">Nヶ月後の月末を取得する</a></li><li><a href="#toc7" tabindex="0">前月末を取得する（月数=-1）</a></li></ol></li><li><a href="#toc8" tabindex="0">実務で使える活用例</a><ol><li><a href="#toc9" tabindex="0">TODAY関数と組み合わせて当月末を動的に取得</a></li><li><a href="#toc10" tabindex="0">月末締め・翌月末払いの支払期日を自動計算</a></li></ol></li><li><a href="#toc11" tabindex="0">EDATE関数・DATE関数との使い分け</a><ol><li><a href="#toc12" tabindex="0">EOMONTH vs EDATE 比較表（月末固定 vs 同日維持）</a></li><li><a href="#toc13" tabindex="0">DATE(YEAR,MONTH+1,0)との比較 ── EOMONTHの優位性</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのEOMONTH関数とは？月末日を自動取得する関数</span></h2>



<p class="wp-block-paragraph">EOMONTH関数は、<strong>指定した月数だけ前後した月の末日</strong>を返す関数です。</p>



<p class="wp-block-paragraph">読み方は「イーオーマンス関数」。End of Monthの略です。</p>



<p class="wp-block-paragraph">たとえば、2026/1/15を基準に1ヶ月後の月末を求めると、2026/2/28が返ります。うるう年の判定も自動で行ってくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">構文と引数</span></h3>



<p class="wp-block-paragraph">EOMONTH関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=EOMONTH(開始日, 月数)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>開始日</td><td>はい</td><td>基準となる日付</td></tr><tr><td>月数</td><td>はい</td><td>開始日から何ヶ月後（マイナスで何ヶ月前）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は2つだけなので、覚えやすいですよね。</p>



<p class="wp-block-paragraph">月数に小数を指定した場合は、小数部分が切り捨てられます。たとえば1.9を指定すると、1として処理されます。</p>



<h3 class="wp-block-heading"><span id="toc3">月数に0を指定すると当月末になる</span></h3>



<p class="wp-block-paragraph">月数に<code>0</code>を指定すると、開始日と同じ月の末日が返ります。</p>



<pre class="wp-block-code"><code>=EOMONTH(&quot;2026/3/10&quot;, 0)</code></pre>



<p class="wp-block-paragraph">結果は<strong>2026/3/31</strong>です。</p>



<p class="wp-block-paragraph">「当月末の日付がほしい」という場面はよくあります。月数=0のパターンはぜひ覚えておいてください。</p>



<h2 class="wp-block-heading"><span id="toc4">EOMONTH関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">ここからは、具体的な数式と計算結果を見ていきましょう。</p>



<p class="wp-block-paragraph">以下のサンプルシートを使って解説します。A列に基準日、B列に月数、C列にEOMONTH関数の結果を表示する構成です。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<h3 class="wp-block-heading"><span id="toc5">翌月末を取得する（月数=1）</span></h3>



<p class="wp-block-paragraph">月数に<code>1</code>を指定すると、1ヶ月後の月末日が返ります。</p>



<pre class="wp-block-code"><code>=EOMONTH(&quot;2026/1/15&quot;, 1)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_eomonth-basic.png" alt="02 formula eomonth basic" /></figure>



<p class="wp-block-paragraph">結果は<strong>2026/2/28</strong>です。2026年はうるう年ではないので、2月の末日は28日になります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_eomonth-basic.png" alt="03 result eomonth basic" /></figure>



<p class="wp-block-paragraph">月末が何日かを気にする必要がないのがEOMONTH関数の強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">Nヶ月後の月末を取得する</span></h3>



<p class="wp-block-paragraph">月数を変えれば、何ヶ月後でも対応できます。</p>



<pre class="wp-block-code"><code>=EOMONTH(&quot;2026/3/10&quot;, 2)</code></pre>



<p class="wp-block-paragraph">3月10日の2ヶ月後の月末なので、結果は<strong>2026/5/31</strong>です。</p>



<pre class="wp-block-code"><code>=EOMONTH(&quot;2026/3/10&quot;, 6)</code></pre>



<p class="wp-block-paragraph">6ヶ月後の月末は<strong>2026/9/30</strong>。9月は30日までなので、自動で30日が返ります。</p>



<h3 class="wp-block-heading"><span id="toc7">前月末を取得する（月数=-1）</span></h3>



<p class="wp-block-paragraph">月数にマイナスの値を指定すると、過去の月末を取得できます。</p>



<pre class="wp-block-code"><code>=EOMONTH(&quot;2026/3/10&quot;, -1)</code></pre>



<p class="wp-block-paragraph">結果は<strong>2026/2/28</strong>。1ヶ月前の月末日です。</p>



<p class="wp-block-paragraph">前月の締め日を参照したいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc8">実務で使える活用例</span></h2>



<p class="wp-block-paragraph">EOMONTH関数は、請求書管理や支払期日の計算で真価を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc9">TODAY関数と組み合わせて当月末を動的に取得</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>（今日の日付を返す関数）と組み合わせると、常に最新の月末日が取得できます。</p>



<pre class="wp-block-code"><code>=EOMONTH(TODAY(), 0)</code></pre>



<p class="wp-block-paragraph">この数式は「今月の末日」を常に返します。ファイルを開くたびに自動更新されるので、月が変わっても修正不要です。</p>



<p class="wp-block-paragraph">よく使うパターンをまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>取得できる日付</th></tr></thead><tbody><tr><td><code>=EOMONTH(TODAY(),0)</code></td><td>今月末</td></tr><tr><td><code>=EOMONTH(TODAY(),1)</code></td><td>翌月末</td></tr><tr><td><code>=EOMONTH(TODAY(),-1)</code></td><td>先月末</td></tr><tr><td><code>=EOMONTH(TODAY(),-1)+1</code></td><td>当月1日（月初）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最後の当月1日の取り方がポイントです。先月末に1日足すと、当月の1日になります。覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">月末締め・翌月末払いの支払期日を自動計算</span></h3>



<p class="wp-block-paragraph">請求書の支払期日を自動計算する例を見てみましょう。</p>



<p class="wp-block-paragraph">A列に請求書発行日を入力し、B〜D列で締め日・支払期日を自動計算します。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（発行日）</th><th>B列（当月末／締め日）</th><th>C列（翌月末払い）</th><th>D列（翌々月末払い）</th></tr></thead><tbody><tr><td>数式</td><td>手入力</td><td><code>=EOMONTH(A2,0)</code></td><td><code>=EOMONTH(A2,1)</code></td><td><code>=EOMONTH(A2,2)</code></td></tr><tr><td>行2</td><td>2026/1/15</td><td>2026/1/31</td><td>2026/2/28</td><td>2026/3/31</td></tr><tr><td>行3</td><td>2026/2/20</td><td>2026/2/28</td><td>2026/3/31</td><td>2026/4/30</td></tr><tr><td>行4</td><td>2026/3/10</td><td>2026/3/31</td><td>2026/4/30</td><td>2026/5/31</td></tr><tr><td>行5</td><td>2026/4/28</td><td>2026/4/30</td><td>2026/5/31</td><td>2026/6/30</td></tr><tr><td>行6</td><td>2026/5/5</td><td>2026/5/31</td><td>2026/6/30</td><td>2026/7/31</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式をB2セルに入力して下方向にコピーするだけです。月ごとの末日の違いもEOMONTH関数が自動で処理してくれます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_payment-due.png" alt="04 result payment due" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「月末締め・翌月末払い」ならC列、「月末締め・翌々月末払い」ならD列を支払期日として使ってください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc11">EDATE関数・DATE関数との使い分け</span></h2>



<p class="wp-block-paragraph">EOMONTH関数と似た機能を持つ関数が2つあります。それぞれの違いを整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">EOMONTH vs EDATE 比較表（月末固定 vs 同日維持）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-edate-function/">EDATE関数</a>（Nヶ月後の同日を返す関数）との違いは、返す日付の基準です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>EOMONTH</th><th>EDATE</th></tr></thead><tbody><tr><td>返す日付</td><td>Nヶ月後の<strong>月末</strong></td><td>Nヶ月後の<strong>同日</strong></td></tr><tr><td>例: 1/15の1ヶ月後</td><td>2/28（月末）</td><td>2/15（同日）</td></tr><tr><td>例: 1/31の1ヶ月後</td><td>2/28（月末）</td><td>2/28（同日※）</td></tr><tr><td>主な用途</td><td>締め日・支払期日</td><td>契約更新日・定期タスク</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">※ EDATEで31日の1ヶ月後を求めると、2月には31日がないため28日（末日）に丸められます。</p>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>「月末」を基準にしたい</strong> → EOMONTH関数</li><li><strong>「同じ日付」を維持したい</strong> → EDATE関数</li></ul>



<p class="wp-block-paragraph">支払期日の計算にはEOMONTH、契約更新日の計算にはEDATEが向いていますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">DATE(YEAR,MONTH+1,0)との比較 ── EOMONTHの優位性</span></h3>



<p class="wp-block-paragraph">EOMONTH関数を使わずに月末日を求める方法もあります。<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>（年・月・日から日付を作る関数）を使う方法です。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(A2), MONTH(A2)+1, 0)</code></pre>



<p class="wp-block-paragraph">「翌月の0日目」を指定すると、当月の末日にロールバックされる仕組みです。結果はEOMONTH関数と同じになります。</p>



<p class="wp-block-paragraph">ただし、EOMONTH関数のほうがおすすめです。理由を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>EOMONTH</th><th>DATE関数の組み合わせ</th></tr></thead><tbody><tr><td>当月末</td><td><code>=EOMONTH(A2,0)</code></td><td><code>=DATE(YEAR(A2),MONTH(A2)+1,0)</code></td></tr><tr><td>翌月末</td><td><code>=EOMONTH(A2,1)</code></td><td><code>=DATE(YEAR(A2),MONTH(A2)+2,0)</code></td></tr><tr><td>3ヶ月前の月末</td><td><code>=EOMONTH(A2,-3)</code></td><td><code>=DATE(YEAR(A2),MONTH(A2)-2,0)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">EOMONTH関数のほうが数式が短く、意図も読み取りやすいですよね。</p>



<p class="wp-block-paragraph">DATE関数の方法は「0日目ロールバック」という裏技的な仕組みです。知っていると便利ですが、チームで共有するシートにはEOMONTH関数を使うほうが親切ですよ。</p>



<h2 class="wp-block-heading"><span id="toc14">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">EOMONTH関数で発生しやすいエラーと、その解決方法をまとめます。</p>



<p class="wp-block-paragraph"><strong>シリアル値（数字）が表示される</strong></p>



<p class="wp-block-paragraph">EOMONTH関数は内部的にシリアル値を返します。「46112」のような数字が表示された場合は、表示形式を変更するだけで解決します。</p>



<p class="wp-block-paragraph">セルを選択して「<strong>表示形式</strong>」→「<strong>数字</strong>」→「<strong>日付</strong>」を選んでください。</p>



<p class="wp-block-paragraph"><strong>#VALUE! エラーが出る</strong></p>



<p class="wp-block-paragraph">開始日に文字列が入っている可能性があります。日付に見えても、実は文字列として入力されているケースがよくあります。</p>



<p class="wp-block-paragraph">セルの表示形式が「書式なしテキスト」になっていないか確認してください。文字列を日付に変換するには、<a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>（文字列を数値に変換する関数）が使えます。</p>



<p class="wp-block-paragraph"><strong>#NUM! エラーが出る</strong></p>



<p class="wp-block-paragraph">計算結果が日付の有効範囲外になっています。月数に極端に大きな値を指定すると発生します。</p>



<p class="wp-block-paragraph">通常の業務で使う範囲であれば、このエラーはほぼ起きません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>EOMONTH関数はExcelとGoogleスプレッドシートで完全互換です。同じ構文・同じ結果で動作するので、Excelユーザーとファイルを共有するときも安心してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">よくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph"><strong>Q. 当月の1日目（月初）を求めるには？</strong></p>



<p class="wp-block-paragraph">A. <code>=EOMONTH(TODAY(), -1)+1</code> と書きます。「先月末の翌日 = 今月1日」という考え方です。月初日を基準に締め日を計算するときに便利です。</p>



<p class="wp-block-paragraph"><strong>Q. うるう年の2月末は自動判定してくれる？</strong></p>



<p class="wp-block-paragraph">A. はい、自動で判定します。たとえば2024年（うるう年）の場合、<code>=EOMONTH("2024/2/1", 0)</code> は「2024/2/29」を返します。手動で日数を調べる必要はありません。</p>



<p class="wp-block-paragraph"><strong>Q. EDATEとEOMONTHはどう使い分ける？</strong></p>



<p class="wp-block-paragraph">A. 「月末を基準にしたい（締め日・支払期日）」ならEOMONTH、「同じ日付を維持したい（契約更新日・記念日）」ならEDATEです。支払条件の管理にはEOMONTHが一般的です。</p>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p class="wp-block-paragraph">EOMONTH関数は、Nヶ月後の月末日を自動取得する関数です。</p>



<p class="wp-block-paragraph">この記事で紹介した使い方をおさらいします。</p>



<ul class="wp-block-list"><li><strong>当月末</strong>: <code>=EOMONTH(A2, 0)</code></li><li><strong>翌月末</strong>: <code>=EOMONTH(A2, 1)</code></li><li><strong>前月末</strong>: <code>=EOMONTH(A2, -1)</code></li><li><strong>TODAY関数と組み合わせ</strong>: <code>=EOMONTH(TODAY(), 0)</code> で常に最新の月末日</li><li><strong>支払期日の自動計算</strong>: 月末締め・翌月末払いの管理に最適</li></ul>



<p class="wp-block-paragraph">月末日の手入力ミスや、うるう年の考慮漏れとはもうサヨナラです。</p>



<p class="wp-block-paragraph">まずは <code>=EOMONTH(TODAY(), 0)</code> で今月の末日を表示するところから試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-eomonth-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートDATE関数の使い方｜月末日・Nヶ月後も自動計算</title>
		<link>https://mashukabu.com/spreadsheet-date-function/</link>
					<comments>https://mashukabu.com/spreadsheet-date-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:50:04 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATE関数]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[MONTH関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[YEAR関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[日付作成]]></category>
		<category><![CDATA[月末日]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4329</guid>

					<description><![CDATA[スプレッドシートのDATE関数の使い方を基本から解説。年・月・日のセルを組み合わせて日付を作る方法から、月末日の自動計算（DATE(年,月+1,0)）、Nヶ月後の日付取得まで実務で役立つテクニックを紹介。EDATE・EOMONTH関数との使い分けも解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「2026年」「3月」「15日」のように年・月・日がバラバラのセルに入っていて、ひとつの日付にまとめたいと思ったことはありませんか？</p>



<p class="wp-block-paragraph">Googleスプレッドシートに手入力で「2026/3/15」と打ち込む方法もありますが、データが増えるたびに手作業では追いつきません。ミスも起きやすいですよね。</p>



<p class="wp-block-paragraph">そんなときに活躍するのがDATE関数です。年・月・日の3つの数値を渡すだけで、正しい日付データを作ってくれます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から、月末日の自動計算やNヶ月後の日付を求めるテクニックまで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのDATE関数とは？年月日から日付を作る関数</a></li><li><a href="#toc2" tabindex="0">DATE関数の基本の書き方</a><ol><li><a href="#toc3" tabindex="0">構文と引数</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc5" tabindex="0">DATE関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">実務で使えるDATE関数の応用テクニック</a><ol><li><a href="#toc7" tabindex="0">月の最終日を自動計算する</a></li><li><a href="#toc8" tabindex="0">Nヶ月後・Nヶ月前の日付を求める</a></li><li><a href="#toc9" tabindex="0">年度の開始日・終了日を自動計算する</a></li></ol></li><li><a href="#toc10" tabindex="0">EDATE・EOMONTH関数との使い分け</a></li><li><a href="#toc11" tabindex="0">DATE関数のよくあるエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">文字列が混在しているとき</a></li><li><a href="#toc13" tabindex="0">日付でなく数字が表示されるとき</a></li></ol></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのDATE関数とは？年月日から日付を作る関数</span></h2>



<p class="wp-block-paragraph">DATE関数（読み方: デイト関数）は、<strong>年・月・日の3つの数値から日付データを作成する関数</strong>です。</p>



<p class="wp-block-paragraph">名前は英語の「date（日付）」がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">スプレッドシートの日付は内部的に「シリアル値」という数値で管理されています。たとえば「2026/1/1」はシリアル値で「46023」です。</p>



<p class="wp-block-paragraph">DATE関数を使えば、このシリアル値を意識せずに正しい日付を作成できます。手入力した「2026/3/15」は文字列として認識されるリスクがありますが、DATE関数なら確実に日付型のデータになりますよ。</p>



<p class="wp-block-paragraph">DATE関数でできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>年・月・日のセルを組み合わせて1つの日付を作る</li><li>月や日に計算式を入れてNヶ月後の日付を求める</li><li>日に「0」を指定して前月の末日を取得する</li><li>TODAY関数と組み合わせて「今月1日」などの基準日を作る</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>DATE関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で動作するので、ファイル共有時も安心です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">DATE関数の基本の書き方</span></h2>



<h3 class="wp-block-heading"><span id="toc3">構文と引数</span></h3>



<pre class="wp-block-code"><code>=DATE(年, 月, 日)</code></pre>



<p class="wp-block-paragraph">カッコの中に「年」「月」「日」を順番に入れるだけです。引数は3つとも必須です。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の詳細</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>年</td><td>必須</td><td>西暦の年（例: 2026）</td></tr><tr><td>月</td><td>必須</td><td>月を表す数値（1〜12）</td></tr><tr><td>日</td><td>必須</td><td>日を表す数値（1〜31）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">月や日に範囲外の値を指定すると、自動で繰り上げ・繰り下げされます。たとえば月に「13」を指定すると翌年の1月として計算されます。この仕組みを「ロールオーバー」と呼びます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>年に0〜1899の値を指定すると、1900が加算されます。<code>=DATE(119,2,1)</code> は「2019/2/1」になります。西暦4桁で指定するのが安全です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">DATE関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">もっともシンプルな使い方です。年・月・日を直接指定してみましょう。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=DATE(2026, 3, 15)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_date-basic.png" alt="02 formula date basic" /></figure>



<p class="wp-block-paragraph">結果は「2026/3/15」です。確実に日付型のデータが作成されます。</p>



<p class="wp-block-paragraph">セル参照と組み合わせるケースも見てみましょう。A1に「2026」、B1に「3」、C1に「15」が入っているとします。</p>



<pre class="wp-block-code"><code>=DATE(A1, B1, C1)</code></pre>



<p class="wp-block-paragraph">結果は同じく「2026/3/15」です。セルの値を変更すれば日付も自動で更新されます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_date-basic.png" alt="03 result date basic" /></figure>



<p class="wp-block-paragraph">TODAY関数と組み合わせれば「今月1日」も作れます。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(TODAY()), MONTH(TODAY()), 1)</code></pre>



<p class="wp-block-paragraph">YEAR関数で今年の年、MONTH関数で今月の月を取り出しています。日を「1」に固定すれば、常に今月1日の日付が返りますよ。</p>



<p class="wp-block-paragraph">表示形式を変えたいときは、<a href="https://mashukabu.com/spreadsheet-text-function/">スプレッドシートのTEXT関数</a>を使うと「2026年3月」のような文字列に変換できます。</p>



<h2 class="wp-block-heading"><span id="toc6">実務で使えるDATE関数の応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc7">月の最終日を自動計算する</span></h3>



<p class="wp-block-paragraph">DATE関数の「日」に0を指定すると、前月の末日が返ります。これがDATE関数の隠れた便利ワザです。</p>



<pre class="wp-block-code"><code>=DATE(2026, 4, 0)</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-date-function/04_formula_date-last-day.png/">_images/spreadsheet-date-function/04_formula_date-last-day.png</a></p>



<p class="wp-block-paragraph">結果は「2026/3/31」です。4月の「0日目」は3月の最終日として解釈されます。</p>



<p class="wp-block-paragraph">つまり「翌月の0日目＝当月の末日」です。当月の末日を求めるには、月に1を足して日を0にします。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 0)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_date-last-day.png" alt="05 result date last day" /></figure>



<p class="wp-block-paragraph">この数式で常に「今月の末日」が返ります。2月の末日も28日と29日を自動で判定してくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">Nヶ月後・Nヶ月前の日付を求める</span></h3>



<p class="wp-block-paragraph">DATE関数の「月」に加算・減算をするだけです。A1に基準日が入っているとします。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(A1), MONTH(A1)+3, DAY(A1))</code></pre>



<p class="wp-block-paragraph">基準日が「2026/1/15」なら、結果は「2026/4/15」です。3ヶ月後の同じ日が返ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/06_result_date-months-later.png" alt="06 result date months later" /></figure>



<p class="wp-block-paragraph">3ヶ月前を求めるなら、+3を-3に変えるだけです。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(A1), MONTH(A1)-3, DAY(A1))</code></pre>



<p class="wp-block-paragraph">基準日が「2026/4/15」なら、結果は「2026/1/15」です。</p>



<p class="wp-block-paragraph">月末日の基準日には注意が必要です。「2026/1/31」の1ヶ月後は「2026/3/3」になります。2月は28日までしかないため、3日分が3月にロールオーバーするためです。月末日を維持したい場合はEOMONTH関数を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">年度の開始日・終了日を自動計算する</span></h3>



<p class="wp-block-paragraph">日本の多くの企業は4月始まりの年度を使っています。年度の開始日と終了日を自動で求めてみましょう。</p>



<p class="wp-block-paragraph">A1に対象の日付が入っているとします。まず年度の開始日です。</p>



<pre class="wp-block-code"><code>=IF(MONTH(A1)&gt;=4, DATE(YEAR(A1),4,1), DATE(YEAR(A1)-1,4,1))</code></pre>



<p class="wp-block-paragraph">4月以降なら今年の4月1日、1〜3月なら前年の4月1日が返ります。</p>



<p class="wp-block-paragraph">次に年度の終了日です。</p>



<pre class="wp-block-code"><code>=IF(MONTH(A1)&gt;=4, DATE(YEAR(A1)+1,3,31), DATE(YEAR(A1),3,31))</code></pre>



<p class="wp-block-paragraph">4月以降なら翌年の3月31日、1〜3月なら今年の3月31日が返ります。</p>



<p class="wp-block-paragraph">A1が「2026/7/10」なら、年度開始日は「2026/4/1」、年度終了日は「2027/3/31」です。期末レポートの自動化に使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc10">EDATE・EOMONTH関数との使い分け</span></h2>



<p class="wp-block-paragraph">Nヶ月後の日付や月末日の計算は、専用関数でも実現できます。DATE関数との違いを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>用途</th><th>DATE関数</th><th>専用関数</th></tr></thead><tbody><tr><td>Nヶ月後の日付</td><td><code>=DATE(YEAR(A1),MONTH(A1)+N,DAY(A1))</code></td><td><code>=EDATE(A1,N)</code></td></tr><tr><td>Nヶ月後の月末日</td><td><code>=DATE(YEAR(A1),MONTH(A1)+N+1,0)</code></td><td><code>=EOMONTH(A1,N)</code></td></tr><tr><td>月末日の処理</td><td>ロールオーバーで翌月にずれる</td><td>月末日を維持する</td></tr><tr><td>年度開始日の計算</td><td>DATE関数で自由に組める</td><td>対応不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">EDATE関数は「Nヶ月後の同日」を返す専用関数です。数式がシンプルになるのがメリットです。</p>



<p class="wp-block-paragraph">EOMONTH関数は「Nヶ月後の月末日」を返します。月末日の計算はDATE関数より安全です。</p>



<p class="wp-block-paragraph">ただしEDATE・EOMONTH関数では「年度の開始日」のような柔軟な日付計算はできません。年・月・日を個別にコントロールしたい場面ではDATE関数が必要です。</p>



<p class="wp-block-paragraph">使い分けの目安はこうです。</p>



<ul class="wp-block-list"><li>「Nヶ月後の同日」→ EDATE関数がシンプル</li><li>「Nヶ月後の月末日」→ EOMONTH関数が安全</li><li>「特定の年月日を自由に組み立てたい」→ DATE関数</li></ul>



<h2 class="wp-block-heading"><span id="toc11">DATE関数のよくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>引数に文字列が入っている</td><td>セル参照先が数値かどうか確認する</td></tr><tr><td>#NUM!</td><td>日付の範囲外（負の日付等）</td><td>年月日の値が妥当か確認する</td></tr><tr><td>#ERROR!</td><td>構文ミス（カッコ忘れ等）</td><td>数式の入力内容を見直す</td></tr><tr><td>日付でなく数字が表示される</td><td>表示形式が「数値」になっている</td><td>表示形式を「日付」に変更する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">文字列が混在しているとき</span></h3>



<p class="wp-block-paragraph">年・月・日のセルに文字列が混ざると#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=DATE(&quot;2026年&quot;, 3, 15)</code></pre>



<p class="wp-block-paragraph">「2026年」は文字列なので数値として認識できません。数値の「2026」を渡す必要があります。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-value-function/">スプレッドシートのVALUE関数</a>で文字列を数値に変換する方法もあります。ただし「2026年」のような日本語混じりの文字列はVALUE関数でも変換できないので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc13">日付でなく数字が表示されるとき</span></h3>



<p class="wp-block-paragraph">DATE関数の結果が「46097」のような数字で表示される場合があります。これはセルの表示形式が「数値」になっているためです。</p>



<p class="wp-block-paragraph">セルを選択して「表示形式」メニューから「日付」を選べば正しく表示されます。DATE関数自体は正常に動作しているので安心してください。</p>



<h2 class="wp-block-heading"><span id="toc14">まとめ</span></h2>



<p class="wp-block-paragraph">DATE関数は、年・月・日の3つの数値から日付データを作成する関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=DATE(年, 月, 日)</code> の3引数。確実に日付型データが作れる</li><li>日に「0」を指定すれば前月の末日を自動取得できる</li><li>月に加算・減算すればNヶ月後・Nヶ月前の日付が求まる</li><li>年度の開始日・終了日の計算にも活用できる</li><li>Nヶ月後はEDATE関数、月末日はEOMONTH関数も検討する</li><li><a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>で表示形式を自由にカスタマイズできる</li></ul>



<p class="wp-block-paragraph">まずは <code>=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 0)</code> で今月の末日を求めるところから試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-date-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのEDATE関数の使い方｜Nヶ月後の日付を自動計算</title>
		<link>https://mashukabu.com/spreadsheet-edate-function/</link>
					<comments>https://mashukabu.com/spreadsheet-edate-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:49:47 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATE関数]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[EOMONTH関数]]></category>
		<category><![CDATA[Nヶ月後]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[契約満了日]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4322</guid>

					<description><![CDATA[スプレッドシートのEDATE関数の使い方を基本から解説。Nヶ月後・Nヶ月前の日付を自動計算する方法、契約満了日や定期点検日の算出、月末日の自動調整の仕組み、EOMONTH・DATE関数との使い分けまで実務で役立つテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「契約開始日から3ヶ月後の満了日を出したい」「定期点検の次回日程をまとめて計算したい」――日付に月数を足す作業、手計算でやっていませんか？</p>



<p class="wp-block-paragraph">月によって日数がバラバラなので、3ヶ月後が何月何日になるか意外と迷いますよね。2月を挟むとさらにややこしくなります。</p>



<p class="wp-block-paragraph">そんなときに使いたいのがスプレッドシートのEDATE関数です。開始日と月数を指定するだけで、Nヶ月後・Nヶ月前の日付を正確に返してくれます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から、契約管理・定期点検などの実務活用例、EOMONTH・DATE関数との使い分けまで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのEDATE関数とは？Nヶ月後の日付を返す関数</a></li><li><a href="#toc2" tabindex="0">EDATE関数の基本の書き方</a><ol><li><a href="#toc3" tabindex="0">構文と引数</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc5" tabindex="0">EDATE関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">実務で使えるEDATE関数の活用例3選</a><ol><li><a href="#toc7" tabindex="0">契約開始日から満了日を自動計算する</a></li><li><a href="#toc8" tabindex="0">定期点検の次回日程を自動計算する</a></li><li><a href="#toc9" tabindex="0">Nヶ月前の日付を求める（月数にマイナス値）</a></li><li><a href="#toc10" tabindex="0">ARRAYFORMULA関数と組み合わせて複数行まとめて計算する</a></li></ol></li><li><a href="#toc11" tabindex="0">EDATE関数の月末日の自動調整を理解する</a></li><li><a href="#toc12" tabindex="0">EOMONTH関数との使い分け</a></li><li><a href="#toc13" tabindex="0">WORKDAY関数との使い分け</a></li><li><a href="#toc14" tabindex="0">EDATE関数のよくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">開始日が文字列になっているとき</a></li><li><a href="#toc16" tabindex="0">日付でなく数字が表示されるとき</a></li></ol></li><li><a href="#toc17" tabindex="0">EDATE関数に関するよくある質問</a><ol><li><a href="#toc18" tabindex="0">Q1. 結果が数値で表示される場合はどうすればよいですか？</a></li><li><a href="#toc19" tabindex="0">Q2. ExcelのEDATE関数と同じ構文で使えますか？</a></li><li><a href="#toc20" tabindex="0">Q3. 月数に小数を指定するとどうなりますか？</a></li><li><a href="#toc21" tabindex="0">Q4. 年単位で加算するにはどうすればよいですか？</a></li><li><a href="#toc22" tabindex="0">Q5. 負の月数を使って過去の日付を求められますか？</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのEDATE関数とは？Nヶ月後の日付を返す関数</span></h2>



<p class="wp-block-paragraph">EDATE関数（読み方: イーデイト関数）は、<strong>指定した日付からNヶ月後（またはNヶ月前）の日付を返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は英語の「Extended DATE（拡張された日付）」の略です。</p>



<p class="wp-block-paragraph">たとえば「2026/1/15」の3ヶ月後を求めると「2026/4/15」が返ります。月数にマイナス値を指定すれば過去の日付も取得できます。</p>



<p class="wp-block-paragraph">EDATE関数でできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>基準日からNヶ月後の同日を自動計算する</li><li>マイナス値でNヶ月前の日付も取得できる</li><li>月末日が存在しない場合は自動で月末に調整される</li><li><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>と組み合わせて「今日からN ヶ月後」を動的に計算する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>EDATE関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で動作するので、ファイル共有時も安心です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">EDATE関数の基本の書き方</span></h2>



<h3 class="wp-block-heading"><span id="toc3">構文と引数</span></h3>



<pre class="wp-block-code"><code>=EDATE(開始日, 月数)</code></pre>



<p class="wp-block-paragraph">カッコの中に「開始日」と「月数」を入れるだけです。引数は2つとも必須です。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の詳細</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>開始日</td><td>必須</td><td>基準となる日付（セル参照や日付値）</td></tr><tr><td>月数</td><td>必須</td><td>加算する月数（正の値で未来、負の値で過去）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">月数には整数を指定します。小数を入れた場合は小数部が切り捨てられます。たとえば「2.7」を指定すると「2」として扱われます。</p>



<h2 class="wp-block-heading"><span id="toc5">EDATE関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">もっともシンプルな使い方です。A1に「2026/1/15」が入っているとします。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=EDATE(A1, 3)</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-edate-function/02_formula_edate-basic.png/">_images/spreadsheet-edate-function/02_formula_edate-basic.png</a></p>



<p class="wp-block-paragraph">結果は「2026/4/15」です。1月15日の3ヶ月後なので、4月15日が返ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_edate-basic.png" alt="03 result edate basic" /></figure>



<p class="wp-block-paragraph">マイナス値を指定すれば過去の日付も取得できます。</p>



<pre class="wp-block-code"><code>=EDATE(A1, -2)</code></pre>



<p class="wp-block-paragraph">結果は「2025/11/15」です。2ヶ月前の日付が返りますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>と組み合わせれば「今日から6ヶ月後」も簡単です。</p>



<pre class="wp-block-code"><code>=EDATE(TODAY(), 6)</code></pre>



<p class="wp-block-paragraph">スプレッドシートを開くたびに自動で更新されます。契約期限のアラート管理に便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc6">実務で使えるEDATE関数の活用例3選</span></h2>



<h3 class="wp-block-heading"><span id="toc7">契約開始日から満了日を自動計算する</span></h3>



<p class="wp-block-paragraph">契約管理でもっとも多いパターンです。A列に契約開始日、B列に契約月数が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（契約開始日）</th><th>B列（契約月数）</th><th>C列（満了日）</th></tr></thead><tbody><tr><td>1</td><td>2026/1/15</td><td>3</td><td>=EDATE(A1,B1) → 2026/4/15</td></tr><tr><td>2</td><td>2026/4/1</td><td>6</td><td>=EDATE(A2,B2) → 2026/10/1</td></tr><tr><td>3</td><td>2026/7/10</td><td>12</td><td>=EDATE(A3,B3) → 2027/7/10</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_edate-contract.png" alt="04 result edate contract" /></figure>



<p class="wp-block-paragraph">月数をセル参照にすれば、3ヶ月契約でも6ヶ月契約でも同じ数式で対応できます。</p>



<p class="wp-block-paragraph">満了日の30日前にアラートを出す数式も組み合わせてみましょう。</p>



<pre class="wp-block-code"><code>=IF(EDATE(A1,B1)-TODAY()&lt;=30, &quot;更新確認&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">IF関数（条件に応じて値を切り替える関数）で満了日と今日の差が30日以下になったら「更新確認」と表示します。</p>



<h3 class="wp-block-heading"><span id="toc8">定期点検の次回日程を自動計算する</span></h3>



<p class="wp-block-paragraph">設備やシステムの定期点検スケジュールにも活用できます。A列に前回点検日、B列に点検間隔（月数）が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（前回点検日）</th><th>B列（間隔）</th><th>C列（次回点検日）</th></tr></thead><tbody><tr><td>1</td><td>2026/2/10</td><td>3</td><td>=EDATE(A1,B1) → 2026/5/10</td></tr><tr><td>2</td><td>2026/3/1</td><td>6</td><td>=EDATE(A2,B2) → 2026/9/1</td></tr><tr><td>3</td><td>2026/1/20</td><td>1</td><td>=EDATE(A3,B3) → 2026/2/20</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">点検が完了したらA列を最新の日付に更新すれば、次回日程も自動で再計算されます。</p>



<h3 class="wp-block-heading"><span id="toc9">Nヶ月前の日付を求める（月数にマイナス値）</span></h3>



<p class="wp-block-paragraph">「過去6ヶ月分のデータを抽出したい」ときに開始日を求められます。</p>



<pre class="wp-block-code"><code>=EDATE(TODAY(), -6)</code></pre>



<p class="wp-block-paragraph">今日が2026/3/19なら、結果は「2025/9/19」です。</p>



<p class="wp-block-paragraph">FILTER関数（条件に合うデータだけを抽出する関数）と組み合わせると便利です。A列に日付、B列に売上が入っているとします。</p>



<pre class="wp-block-code"><code>=FILTER(A:B, A:A&gt;=EDATE(TODAY(),-6))</code></pre>



<p class="wp-block-paragraph">直近6ヶ月分のデータだけが抽出されます。日付の境界が毎日自動で動くので、レポートの更新作業が不要になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">ARRAYFORMULA関数と組み合わせて複数行まとめて計算する</span></h3>



<p class="wp-block-paragraph">契約日や点検日が何十行も並んでいると、1行ずつEDATE関数をコピーするのは面倒ですよね。そんなときは<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせると便利です。</p>



<p class="wp-block-paragraph">ARRAYFORMULA関数は、範囲を渡すだけで全行に同じ計算を一括適用してくれる関数です。1つの数式で列全体を処理できます。</p>



<p class="wp-block-paragraph">A2からA10に契約開始日が入っていて、それぞれの3ヶ月後をC列にまとめて出す例です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(EDATE(A2:A10, 3))</code></pre>



<p class="wp-block-paragraph">C2に入力するだけで、A2〜A10の各日付から3ヶ月後の日付が一気に表示されます。行ごとに数式をコピーする必要はありません。</p>



<p class="wp-block-paragraph">ただし、このままだとデータが入っていない空白行に「1900/1/3」のような変な日付が出てしまいます。空白セルをゼロ（つまり日付の起点）として計算してしまうためです。</p>



<p class="wp-block-paragraph">そこでIF関数で空白を判定して回避します。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(A2:A=&quot;&quot;, &quot;&quot;, EDATE(A2:A, 3)))</code></pre>



<p class="wp-block-paragraph">A列が空白の行は空白のまま、日付が入っている行だけ3ヶ月後を計算します。<code>A2:A</code> のように行番号を省略して列全体を指定すれば、後からデータを追加しても自動で計算されますよ。</p>



<p class="wp-block-paragraph">月数もセル参照にしたいときは、月数の列を範囲で渡します。A列が開始日、B列が契約月数の場合です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(A2:A=&quot;&quot;, &quot;&quot;, EDATE(A2:A, B2:B)))</code></pre>



<p class="wp-block-paragraph">これで「3ヶ月契約は3ヶ月後、6ヶ月契約は6ヶ月後」と、行ごとに異なる月数でまとめて計算できます。契約一覧表の満了日を1つの数式で管理できるので、メンテナンスがぐっと楽になります。</p>



<h2 class="wp-block-heading"><span id="toc11">EDATE関数の月末日の自動調整を理解する</span></h2>



<p class="wp-block-paragraph">EDATE関数の重要な特徴が「月末日の自動調整」です。</p>



<p class="wp-block-paragraph">開始日が1月31日で1ヶ月後を求める場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=EDATE(&quot;2026/1/31&quot;, 1)</code></pre>



<p class="wp-block-paragraph">結果は「2026/2/28」です。2月には31日がないため、自動的に2月の末日（28日）に調整されます。</p>



<p class="wp-block-paragraph">これが<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>との大きな違いです。同じ計算をDATE関数でやると結果が変わります。</p>



<pre class="wp-block-code"><code>=DATE(YEAR(A1), MONTH(A1)+1, DAY(A1))</code></pre>



<p class="wp-block-paragraph">A1が「2026/1/31」の場合、結果は「2026/3/3」です。2月31日は存在しないため、3日分が3月にロールオーバー（繰り越し）されます。</p>



<p class="wp-block-paragraph">具体的な比較を見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>開始日</th><th>月数</th><th>EDATE関数の結果</th><th>DATE関数の結果</th></tr></thead><tbody><tr><td>2026/1/31</td><td>+1</td><td>2026/2/28（月末に調整）</td><td>2026/3/3（ロールオーバー）</td></tr><tr><td>2026/1/31</td><td>+2</td><td>2026/3/31（31日がある月はそのまま）</td><td>2026/3/31（同じ結果）</td></tr><tr><td>2026/3/31</td><td>+1</td><td>2026/4/30（月末に調整）</td><td>2026/5/1（ロールオーバー）</td></tr><tr><td>2026/1/29</td><td>+1</td><td>2026/2/28（月末に調整）</td><td>2026/3/1（ロールオーバー）</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_edate-monthend.png" alt="05 result edate monthend" /></figure>



<p class="wp-block-paragraph">月末日が絡む計算では、EDATE関数のほうが直感的な結果を返してくれます。「3月31日の1ヶ月後は4月30日」と解釈されるのは自然ですよね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「月末日を必ず月末に維持したい」場合はEDATE関数、「厳密に同じ日付を保ちたい」場合はDATE関数と使い分けましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc12">EOMONTH関数との使い分け</span></h2>



<p class="wp-block-paragraph">EDATE関数とよくセットで紹介されるのがEOMONTH関数（読み方: イーオーマンス関数）です。</p>



<p class="wp-block-paragraph">EOMONTH関数は「Nヶ月後の月末日」を返す関数です。構文はEDATE関数とほぼ同じです。</p>



<pre class="wp-block-code"><code>=EOMONTH(開始日, 月数)</code></pre>



<p class="wp-block-paragraph">両者の違いを比較表で整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>EDATE関数</th><th>EOMONTH関数</th></tr></thead><tbody><tr><td>返す日付</td><td>Nヶ月後の<strong>同日</strong></td><td>Nヶ月後の<strong>月末日</strong></td></tr><tr><td>2026/1/15の2ヶ月後</td><td>2026/3/15</td><td>2026/3/31</td></tr><tr><td>2026/1/31の1ヶ月後</td><td>2026/2/28（月末に調整）</td><td>2026/2/28（月末日）</td></tr><tr><td>主な用途</td><td>契約満了日・次回点検日</td><td>月末締め・支払期日</td></tr><tr><td>月末の扱い</td><td>存在しない日は月末に調整</td><td>常に月末日を返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けの目安はシンプルです。</p>



<ul class="wp-block-list"><li>「Nヶ月後の同じ日」がほしい → <strong>EDATE関数</strong></li><li>「Nヶ月後の月末日」がほしい → <strong>EOMONTH関数</strong></li></ul>



<p class="wp-block-paragraph">たとえば「毎月15日が支払日」ならEDATE関数、「毎月末が締め日」ならEOMONTH関数を選びます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>当月の末日を求めるだけなら <code>=EOMONTH(TODAY(), 0)</code> が最も簡単です。<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>の <code>=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 0)</code> でも同じ結果が得られますが、EOMONTHのほうが数式がシンプルですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc13">WORKDAY関数との使い分け</span></h2>



<p class="wp-block-paragraph">「Nヶ月後」ではなく「N営業日後」を求めたいときは、EDATE関数ではなく<a href="https://mashukabu.com/spreadsheet-workday-function/">WORKDAY関数</a>を使います。</p>



<p class="wp-block-paragraph">WORKDAY関数は、開始日から指定した営業日数（土日を除いた日数）だけ進んだ日付を返す関数です。構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=WORKDAY(開始日, 日数, [休日])</code></pre>



<p class="wp-block-paragraph">EDATE関数とWORKDAY関数は、どちらも「未来の日付」を計算しますが、数える単位がまったく違います。EDATE関数はカレンダーの月単位、WORKDAY関数は土日を除いた営業日単位です。</p>



<p class="wp-block-paragraph">両者を比較表で整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>EDATE関数</th><th>WORKDAY関数</th></tr></thead><tbody><tr><td>数える単位</td><td>月数（カレンダー月）</td><td>営業日数（日単位）</td></tr><tr><td>土日の扱い</td><td>区別せず同日を返す</td><td>土日をスキップする</td></tr><tr><td>祝日の考慮</td><td>なし</td><td>休日リストを指定可能</td></tr><tr><td>2026/1/15から</td><td>+1ヶ月 → 2026/2/15</td><td>+10営業日 → 2026/1/29</td></tr><tr><td>向いている用途</td><td>契約満了日・定期更新・Nヶ月後の日付</td><td>請求支払期限・納品日・検収期限</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けの基準は「月で数えるか、営業日で数えるか」のひと言に尽きます。</p>



<ul class="wp-block-list"><li>「3ヶ月後」「半年後」など<strong>月単位</strong>で考える → <strong>EDATE関数</strong></li><li>「10営業日以内」「5営業日後」など<strong>営業日単位</strong>で考える → <strong>WORKDAY関数</strong></li></ul>



<p class="wp-block-paragraph">たとえば「契約満了は6ヶ月後」ならEDATE関数、「請求書発行から10営業日以内に入金」ならWORKDAY関数が適しています。土日や祝日をまたぐ納期管理では、営業日で数えるWORKDAY関数のほうが実態に合いますよ。</p>



<h2 class="wp-block-heading"><span id="toc14">EDATE関数のよくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>開始日が日付として認識されていない</td><td>セルの値が日付型か確認する。文字列の場合はDATEVALUE関数（日付文字列を日付値に変換する関数）で変換する</td></tr><tr><td>#VALUE!</td><td>月数に数値以外が入っている</td><td>月数のセルに文字列が混ざっていないか確認する</td></tr><tr><td>数字が表示される</td><td>表示形式が「数値」になっている</td><td>セルの表示形式を「日付」に変更する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">開始日が文字列になっているとき</span></h3>



<p class="wp-block-paragraph">「2026/1/15」と手入力した値が文字列として認識されるケースがあります。セルの左上に小さな三角マークが出ていたら文字列の可能性があります。</p>



<pre class="wp-block-code"><code>=EDATE(DATEVALUE(&quot;2026/1/15&quot;), 3)</code></pre>



<p class="wp-block-paragraph">DATEVALUE関数で文字列を日付値に変換すれば解決します。ただし最初から<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>で日付を作成するほうが確実です。</p>



<h3 class="wp-block-heading"><span id="toc16">日付でなく数字が表示されるとき</span></h3>



<p class="wp-block-paragraph">EDATE関数の結果が「46112」のような数字で表示される場合は、セルの表示形式が「数値」になっています。</p>



<p class="wp-block-paragraph">セルを選択して「表示形式」メニューから「日付」を選べば正しく表示されます。関数自体は正常に動作しているので安心してください。</p>



<h2 class="wp-block-heading"><span id="toc17">EDATE関数に関するよくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc18">Q1. 結果が数値で表示される場合はどうすればよいですか？</span></h3>



<p class="wp-block-paragraph">セルの表示形式を「日付」に変更してください。EDATE関数は内部的に日付シリアル値（1900年からの通算日数）を返すため、セルが数値書式のままだと「46112」のような数字で表示されます。</p>



<p class="wp-block-paragraph">セルを選択して「表示形式」メニューから「日付」を選べば、正しい日付表示に切り替わります。関数の計算結果は正常なので、見た目の問題だけですよ。</p>



<h3 class="wp-block-heading"><span id="toc19">Q2. ExcelのEDATE関数と同じ構文で使えますか？</span></h3>



<p class="wp-block-paragraph">はい、まったく同じ構文で使えます。<code>=EDATE(開始日, 月数)</code> という書き方はExcelとGoogleスプレッドシートで完全に共通です。</p>



<p class="wp-block-paragraph">月末日の自動調整など、動作仕様も同じです。ExcelファイルをGoogleスプレッドシートに取り込んでも、EDATE関数を含む数式はそのまま動作するので、ファイル共有時も安心してください。</p>



<h3 class="wp-block-heading"><span id="toc20">Q3. 月数に小数を指定するとどうなりますか？</span></h3>



<p class="wp-block-paragraph">小数点以下が切り捨てられます。たとえば <code>=EDATE(A1, 2.6)</code> は <code>=EDATE(A1, 2)</code> と同じ結果になり、2ヶ月後の日付が返ります。</p>



<p class="wp-block-paragraph">「1.5ヶ月後」のような半月単位の計算はEDATE関数ではできません。日数で調整したい場合は、結果に日数を足す（例: <code>=EDATE(A1,1)+15</code>）といった工夫が必要です。</p>



<h3 class="wp-block-heading"><span id="toc21">Q4. 年単位で加算するにはどうすればよいですか？</span></h3>



<p class="wp-block-paragraph">月数に12の倍数を指定します。1年は12ヶ月なので <code>=EDATE(A1, 12)</code> で1年後、<code>=EDATE(A1, 24)</code> で2年後、<code>=EDATE(A1, 36)</code> で3年後の日付が求められます。</p>



<p class="wp-block-paragraph">「契約は2年更新」のような年単位の管理では、<code>=EDATE(A1, 契約年数*12)</code> のように年数に12を掛ける書き方にすると、セルに年数を入れるだけで計算できて便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc22">Q5. 負の月数を使って過去の日付を求められますか？</span></h3>



<p class="wp-block-paragraph">求められます。月数にマイナス値を指定すると、その分だけ過去の日付が返ります。<code>=EDATE(A1, -3)</code> ならA1から3ヶ月前の日付です。</p>



<p class="wp-block-paragraph">「3ヶ月前の月初から集計したい」「半年前のデータ開始日を出したい」といった過去基準の計算で活躍します。<a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>と組み合わせた <code>=EDATE(TODAY(), -6)</code> なら、常に「今日から半年前」を動的に求められますよ。</p>



<h2 class="wp-block-heading"><span id="toc23">まとめ</span></h2>



<p class="wp-block-paragraph">EDATE関数は、指定した日付からNヶ月後・Nヶ月前の日付を返す関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=EDATE(開始日, 月数)</code> の2引数。月数にマイナス値で過去の日付も取得できる</li><li>月末日が存在しない場合は自動で月末に調整される（1/31の1ヶ月後は2/28）</li><li>契約満了日・定期点検日・データ抽出期間の計算に最適</li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、列全体の日付を1つの数式で一括計算できる</li><li>「Nヶ月後の同日」はEDATE関数、「Nヶ月後の月末日」はEOMONTH関数</li><li>「N営業日後」を求めたいときは<a href="https://mashukabu.com/spreadsheet-workday-function/">WORKDAY関数</a>を使う</li><li><a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>はロールオーバーするため月末日の扱いに注意</li><li><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>は逆に「2つの日付の差を月数で計算する」ときに使う</li></ul>



<p class="wp-block-paragraph">まずは <code>=EDATE(TODAY(), 3)</code> で今日から3ヶ月後の日付を求めるところから試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-edate-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDATEDIF関数の使い方｜年齢・勤続年数を計算</title>
		<link>https://mashukabu.com/excel-function-howto-use-datedif/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-datedif/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 12 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DAYS関数]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2376</guid>

					<description><![CDATA[ExcelのDATEDIF関数で年齢・勤続年数・経過月数を自動計算する方法を解説。6つの単位の違い、"MD"バグの回避策、DAYS/YEARFRACとの使い分け比較、スプレッドシートとの違いまで実務目線で網羅しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「この人は今何歳？」「入社から何年経った？」と計算したい場面、ありますよね。生年月日と今日の日付から年齢を出したいのに、ぴったりの関数が見つからない。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>DATEDIF関数</strong> です。この記事では、基本の書き方から6つの単位の違い、年齢・勤続年数の実務パターン、&#8221;MD&#8221;単位の既知バグと回避策まで解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 生年月日から年齢を自動計算したい<br>&#8211; 入社日から勤続年数を「○年○ヶ月」で表示したい<br>&#8211; DATEDIF関数の6つの単位の違いを知りたい<br>&#8211; &#8220;MD&#8221;のバグが不安で正しい回避策を知りたい</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DATEDIF関数とは？</a><ol><li><a href="#toc2" tabindex="0">DATEDIF関数の読み方と意味</a></li><li><a href="#toc3" tabindex="0">非公開関数とは何か</a></li></ol></li><li><a href="#toc4" tabindex="0">DATEDIF関数の書き方</a><ol><li><a href="#toc5" tabindex="0">基本構文と3つの引数</a></li><li><a href="#toc6" tabindex="0">6つの単位の違い一覧</a></li></ol></li><li><a href="#toc7" tabindex="0">DATEDIF関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">年数を求める（単位 Y）</a></li><li><a href="#toc9" tabindex="0">月数を求める（単位 M）</a></li><li><a href="#toc10" tabindex="0">日数を求める（単位 D）</a></li><li><a href="#toc11" tabindex="0">端数の月・日を取り出す（YM/MD）</a></li></ol></li><li><a href="#toc12" tabindex="0">DATEDIF関数の実務活用パターン</a><ol><li><a href="#toc13" tabindex="0">年齢を自動計算する（TODAY関数との組み合わせ）</a></li><li><a href="#toc14" tabindex="0">勤続年数を「○年○ヶ月」で表示する</a></li><li><a href="#toc15" tabindex="0">契約の残り期間を表示する</a></li></ol></li><li><a href="#toc16" tabindex="0">&#8220;MD&#8221;単位の既知バグと回避策</a><ol><li><a href="#toc17" tabindex="0">どんな場合に不正確な値になるか</a></li><li><a href="#toc18" tabindex="0">代替式で正確に端数日数を求める方法</a></li></ol></li><li><a href="#toc19" tabindex="0">DATEDIF / DAYS / YEARFRAC 三者比較</a><ol><li><a href="#toc20" tabindex="0">3関数の特徴と適切な使い分け</a></li><li><a href="#toc21" tabindex="0">判断フロー｜何を計算したいかで関数を選ぶ</a></li></ol></li><li><a href="#toc22" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc23" tabindex="0">まとめ</a><ol><li><a href="#toc24" tabindex="0">関連記事</a></li><li><a href="#toc25" tabindex="0">関数一覧</a></li><li><a href="#toc26" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">DATEDIF関数とは？</span></h2>



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の間の期間を <strong>年数・月数・日数</strong> で求めるExcelの関数です。</p>



<p class="wp-block-paragraph">ほかの日付関数との大きな違いは、「○年」「○ヶ月」と単位を選べる点です。年齢計算や勤続年数の算出にぴったりですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">DATEDIF関数の読み方と意味</span></h3>



<p class="wp-block-paragraph">読み方は「デイトディフ」です。<strong>Date（日付）+ Difference（差）</strong> が語源で、そのまま「日付の差」を意味します。</p>



<h3 class="wp-block-heading"><span id="toc3">非公開関数とは何か</span></h3>



<p class="wp-block-paragraph">DATEDIF関数は、Excelの <strong>非公開関数</strong> です。関数ダイアログや入力補完の候補に表示されません。</p>



<p class="wp-block-paragraph">もともとLotus 1-2-3という表計算ソフトとの互換性のために残された関数です。Excel 2000のヘルプでは公式に記載されていましたが、現在は通常の関数一覧から外されています。</p>



<p class="wp-block-paragraph">ただし、動作自体にはまったく問題ありません。すべてのバージョンのExcelで使えます。数式を手入力すれば普通に動きますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>廃止される心配はない？</strong></p><p>極めて低いと考えてよいでしょう。すべてのExcelバージョンで動作し、Microsoftのサポートページも存続しています。ただし公式サポート対象外なので、将来の仕様変更がゼロとは言い切れません。重要な業務で使う場合は、この点を頭に入れておいてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">DATEDIF関数の書き方</span></h2>



<h3 class="wp-block-heading"><span id="toc5">基本構文と3つの引数</span></h3>



<pre class="wp-block-code"><code>=DATEDIF(開始日, 終了日, 単位)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>開始日</td><td>必須</td><td>期間の始まりの日付（古いほうの日付）</td></tr><tr><td>終了日</td><td>必須</td><td>期間の終わりの日付（新しいほうの日付）</td></tr><tr><td>単位</td><td>必須</td><td>結果の形式を指定する文字列</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数の順番に注意してください。<strong>開始日が先、終了日が後</strong> です。<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>は「終了日, 開始日」と逆順なので、混同しないようにしましょう。</p>



<p class="wp-block-paragraph">開始日が終了日より後の日付だと <strong>#NUM! エラー</strong> になります。<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>のようにマイナスの値は返りません。</p>



<p class="wp-block-paragraph">日付はセル参照のほか、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>で直接指定することもできます。</p>



<pre class="wp-block-code"><code>=DATEDIF(DATE(2020,4,1), DATE(2026,3,21), &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph">文字列で <code>"2020/4/1"</code> と書いても動きます。ただし<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>のほうが確実に日付として認識されるので安心です。</p>



<h3 class="wp-block-heading"><span id="toc6">6つの単位の違い一覧</span></h3>



<p class="wp-block-paragraph">DATEDIF関数の特徴は、第3引数の「単位」で結果を細かく指定できる点です。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>2020/4/1 → 2026/3/21 の結果</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>期間の満年数</td><td>5</td></tr><tr><td>&#8220;M&#8221;</td><td>期間の総月数</td><td>71</td></tr><tr><td>&#8220;D&#8221;</td><td>期間の総日数</td><td>2182</td></tr><tr><td>&#8220;YM&#8221;</td><td>年を無視した端数の月数</td><td>11</td></tr><tr><td>&#8220;MD&#8221;</td><td>月と年を無視した端数の日数</td><td>20</td></tr><tr><td>&#8220;YD&#8221;</td><td>年を無視した通算日数</td><td>355</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">&#8220;Y&#8221; &#8220;M&#8221; &#8220;D&#8221; はそのまま年数・月数・日数を返します。</p>



<p class="wp-block-paragraph">&#8220;YM&#8221; &#8220;MD&#8221; &#8220;YD&#8221; は <strong>端数を取り出す</strong> ための単位です。たとえば「5年11ヶ月20日」のうち、&#8221;YM&#8221; は「11」の部分だけを返します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>&#8220;MD&#8221; には既知のバグがあります</strong></p><p>&#8220;MD&#8221; は一部の日付で不正確な値を返します。詳しくはこの記事の後半で解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">DATEDIF関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc8">年数を求める（単位 Y）</span></h3>



<p class="wp-block-paragraph">A1に「2020/4/1」、B1に「2026/3/21」と入っている場合です。</p>



<pre class="wp-block-code"><code>=DATEDIF(A1, B1, &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>5</strong></p>



<p class="wp-block-paragraph">開始日から終了日までの満年数が返ります。6年に満たないので「5」です。</p>



<h3 class="wp-block-heading"><span id="toc9">月数を求める（単位 M）</span></h3>



<p class="wp-block-paragraph">同じセルを使って月数を求めてみましょう。</p>



<pre class="wp-block-code"><code>=DATEDIF(A1, B1, &quot;M&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>71</strong></p>



<p class="wp-block-paragraph">2020年4月から2026年3月までの総月数です。</p>



<h3 class="wp-block-heading"><span id="toc10">日数を求める（単位 D）</span></h3>



<pre class="wp-block-code"><code>=DATEDIF(A1, B1, &quot;D&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2182</strong></p>



<p class="wp-block-paragraph">総日数が返ります。日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>や引き算でも同じ結果になります。</p>



<h3 class="wp-block-heading"><span id="toc11">端数の月・日を取り出す（YM/MD）</span></h3>



<p class="wp-block-paragraph">「5年 <strong>11ヶ月</strong> 20日」の端数月を取り出すには &#8220;YM&#8221; を使います。</p>



<pre class="wp-block-code"><code>=DATEDIF(A1, B1, &quot;YM&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>11</strong></p>



<p class="wp-block-paragraph">年を無視した端数の月数だけが返ります。</p>



<p class="wp-block-paragraph">同様に、端数の日数は &#8220;MD&#8221; で取り出せます。</p>



<pre class="wp-block-code"><code>=DATEDIF(A1, B1, &quot;MD&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>20</strong></p>



<p class="wp-block-paragraph">ただし &#8220;MD&#8221; には既知のバグがあります。正確な端数日数が必要な場合は、後述の回避策を使ってください。</p>



<h2 class="wp-block-heading"><span id="toc12">DATEDIF関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc13">年齢を自動計算する（TODAY関数との組み合わせ）</span></h3>



<p class="wp-block-paragraph">人事・総務でよく使うのが年齢計算です。A2に生年月日が入っている場合、<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2, TODAY(), &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>はファイルを開くたびに当日の日付を返します。この数式を入れておけば年齢が毎日自動で更新されますよ。</p>



<p class="wp-block-paragraph">たとえばA2が「1990/5/15」なら、2026年3月21日時点で <strong>35</strong> と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc14">勤続年数を「○年○ヶ月」で表示する</span></h3>



<p class="wp-block-paragraph">入社日（A2）から今日までの勤続年数を「3年5ヶ月」のように表示する方法です。&#8221;Y&#8221; と &#8220;YM&#8221; を組み合わせます。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2, TODAY(), &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(A2, TODAY(), &quot;YM&quot;) &amp; &quot;ヶ月&quot;</code></pre>



<p class="wp-block-paragraph">&#8220;Y&#8221; で年数、&#8221;YM&#8221; で端数の月数を取り出し、<code>&</code> で文字列連結しています。</p>



<p class="wp-block-paragraph">A2が「2022/10/1」なら「3年5ヶ月」のように表示されます。</p>



<p class="wp-block-paragraph">さらに日数まで含めた「○年○ヶ月○日」の表示も可能です。ただし &#8220;MD&#8221; にはバグがあるため、次の代替式を使ってください。</p>



<pre class="wp-block-code"><code>=DATEDIF(A2,TODAY(),&quot;Y&quot;)&amp;&quot;年&quot;&amp;DATEDIF(A2,TODAY(),&quot;YM&quot;)&amp;&quot;ヶ月&quot;&amp;(TODAY()-EDATE(A2,DATEDIF(A2,TODAY(),&quot;M&quot;)))&amp;&quot;日&quot;</code></pre>



<p class="wp-block-paragraph">日数部分で<a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>を使い、&#8221;MD&#8221; のバグを回避しています。</p>



<h3 class="wp-block-heading"><span id="toc15">契約の残り期間を表示する</span></h3>



<p class="wp-block-paragraph">契約終了日（B2）までの残り期間を表示する例です。開始日に<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>を指定します。</p>



<pre class="wp-block-code"><code>=DATEDIF(TODAY(), B2, &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(TODAY(), B2, &quot;YM&quot;) &amp; &quot;ヶ月&quot;</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>（今日）が開始日、B2（契約終了日）が終了日です。順番を逆にすると#NUM!エラーになるので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc16">&#8220;MD&#8221;単位の既知バグと回避策</span></h2>



<h3 class="wp-block-heading"><span id="toc17">どんな場合に不正確な値になるか</span></h3>



<p class="wp-block-paragraph">&#8220;MD&#8221; は月末日をまたぐ特定の日付で、負の値や不正確な値を返します。Microsoftも公式に「MDの使用は推奨しない」と警告しています。</p>



<p class="wp-block-paragraph">具体的な問題例を見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>開始日</th><th>終了日</th><th>&#8220;MD&#8221; の結果</th><th>正しい値</th></tr></thead><tbody><tr><td>2016/1/31</td><td>2016/3/1</td><td><strong>-2</strong></td><td>1</td></tr><tr><td>2016/1/30</td><td>2016/3/1</td><td><strong>-1</strong></td><td>1</td></tr><tr><td>2016/3/31</td><td>2016/5/1</td><td><strong>0</strong></td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">1月31日から3月1日は1日の差のはずなのに、結果は「-2」です。このように月末付近の日付で計算が狂います。</p>



<p class="wp-block-paragraph">なお、&#8221;Y&#8221; &#8220;M&#8221; &#8220;YM&#8221; は基本的に安全です。ただし、うるう年が絡む特殊なケース（例: 2020/2/29 → 2021/2/28）では、&#8221;MD&#8221; 以外の単位でも予期しない値を返すことがあります。通常の日付ペアでは心配いりませんが、2月29日を含む計算は結果を確認しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc18">代替式で正確に端数日数を求める方法</span></h3>



<p class="wp-block-paragraph">&#8220;MD&#8221; の代わりに、次の式を使えば正確な端数日数が求められます。</p>



<pre class="wp-block-code"><code>=B1 - EDATE(A1, DATEDIF(A1, B1, &quot;M&quot;))</code></pre>



<p class="wp-block-paragraph">仕組みはこうです。</p>



<ol class="wp-block-list"><li><code>DATEDIF(A1, B1, "M")</code> で完了した月数を求める</li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>で開始日をその月数分だけ進める</li><li>終了日との差が正確な端数日数になる</li></ol>



<p class="wp-block-paragraph">先ほどの問題例（2016/1/31 → 2016/3/1）で試すと、結果は正しく <strong>1</strong> になります。</p>



<p class="wp-block-paragraph">&#8220;MD&#8221; を使っている数式があれば、この代替式に置き換えることをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc19">DATEDIF / DAYS / YEARFRAC 三者比較</span></h2>



<h3 class="wp-block-heading"><span id="toc20">3関数の特徴と適切な使い分け</span></h3>



<p class="wp-block-paragraph">日付の差を求める関数は3つあります。それぞれ得意分野が違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DATEDIF</th><th>DAYS</th><th>YEARFRAC</th></tr></thead><tbody><tr><td>返す値</td><td>年/月/日（6単位）</td><td>日数のみ</td><td>小数の年数</td></tr><tr><td>引数の順番</td><td>開始日, 終了日</td><td>終了日, 開始日</td><td>開始日, 終了日, 基準</td></tr><tr><td>公式関数か</td><td>いいえ（非公開）</td><td>はい（2013以降）</td><td>はい</td></tr><tr><td>年齢計算</td><td>最適（整数で正確）</td><td>不向き</td><td>うるう年で誤差あり</td></tr><tr><td>主な用途</td><td>年齢・勤続年数</td><td>日数差・残日数</td><td>利子・利回り計算</td></tr><tr><td>既知のバグ</td><td>MD単位</td><td>なし</td><td>なし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>は日数を返す公式関数です。YEARFRAC関数は小数の年数を返し、財務計算で使われます。</p>



<h3 class="wp-block-heading"><span id="toc21">判断フロー｜何を計算したいかで関数を選ぶ</span></h3>



<ul class="wp-block-list"><li><strong>年齢や勤続年数を「○年○ヶ月」で出したい</strong> → DATEDIF関数</li><li><strong>日数の差だけをシンプルに求めたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>または引き算</li><li><strong>マイナスの値がほしい（期限超過の判定）</strong> → <a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a></li><li><strong>利率や利回りの年数計算</strong> → YEARFRAC関数</li><li><strong>Excel 2010以前で日数を計算したい</strong> → DATEDIF関数または引き算</li></ul>



<p class="wp-block-paragraph">日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>が公式関数で安心です。年数や月数が必要になったらDATEDIF関数の出番、と覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc22">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">エラーが出たときは、次の表を参考にしてみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#NUM!</td><td>開始日が終了日より後</td><td>日付の順番を確認する。古いほうが第1引数</td></tr><tr><td>#NUM!</td><td>単位の文字列が無効</td><td>&#8220;Y&#8221; &#8220;M&#8221; &#8220;D&#8221; &#8220;YM&#8221; &#8220;MD&#8221; &#8220;YD&#8221; のいずれかを指定する</td></tr><tr><td>#VALUE!</td><td>日付として認識できない値</td><td>セルが正しい日付データか確認する。文字列なら<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>を使う</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td><td>&#8220;DATEDIFF&#8221;（Fが2つ）は間違い。正しくは &#8220;DATEDIF&#8221;</td></tr><tr><td>入力補完に出ない</td><td>非公開関数のため</td><td>正常です。「=DATEDIF(」と手入力してください</td></tr><tr><td>結果が0になる</td><td>期間が単位に満たない</td><td>&#8220;Y&#8221; は満1年に達しないと0を返します。&#8221;M&#8221; や &#8220;D&#8221; で確認してみてください</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc23">まとめ</span></h2>



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の期間を年数・月数・日数で求められる関数です。</p>



<ul class="wp-block-list"><li><strong>=DATEDIF(開始日, 終了日, 単位)</strong> で期間を計算する</li><li>6つの単位で <strong>年数(&#8220;Y&#8221;)・月数(&#8220;M&#8221;)・日数(&#8220;D&#8221;)</strong> を使い分けられる</li><li><strong>&#8220;YM&#8221;</strong> で端数の月数、<strong>&#8220;MD&#8221;</strong> で端数の日数を取り出せる</li><li><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせれば <strong>年齢や勤続年数が毎日自動更新</strong> される</li><li><strong>&#8220;MD&#8221; には既知のバグ</strong> がある。代替式 <code>=終了日-EDATE(開始日,DATEDIF(開始日,終了日,"M"))</code> を使おう</li><li>非公開関数だが <strong>全バージョンで動作</strong> し、廃止リスクは極めて低い</li><li>日数だけなら<a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>、年数・月数ならDATEDIF関数</li></ul>



<p class="wp-block-paragraph">年齢計算や勤続年数の管理に、ぜひDATEDIF関数を活用してみてください。日付計算の関数を網羅的に知りたい方は、<a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算を完全攻略</a>もあわせてチェックしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc24">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算を完全攻略</a></li></ul>



<h3 class="wp-block-heading"><span id="toc25">関数一覧</span></h3>



<p class="wp-block-paragraph">どちらの関数一覧からでも各関数の解説記事へアクセスできます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc26">エラー値についてのまとめ記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">セルに表示されるエラーの種類と原因、対処方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-datedif/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのEDATE関数の使い方｜○ヶ月後・前の日付を自動計算</title>
		<link>https://mashukabu.com/excel-function-howto-use-edate/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-edate/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 26 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[○ヶ月後]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[契約更新日]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2252</guid>

					<description><![CDATA[ExcelのEDATE関数で○ヶ月後・○ヶ月前の日付を自動計算する方法を解説。契約更新日や支払期日の管理に使える実務パターン、EOMONTH関数との違い、エラー対処法もまとめています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「契約更新日を毎回カレンダーで数えている」なんてことはありませんか。○ヶ月後の日付を手計算するのは地味に面倒ですよね。</p>



<p class="wp-block-paragraph">ExcelのEDATE関数を使えば、基準日から○ヶ月後・○ヶ月前の日付を一発で計算できます。この記事では基本の書き方から実務パターンまでまとめて紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>基準日から○ヶ月後・○ヶ月前の日付を自動で計算したい</li><li>契約更新日や試用期間の終了日を数式で管理したい</li><li>EDATE関数と<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>の違いを整理したい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">EDATE関数とは？</a></li><li><a href="#toc2" tabindex="0">EDATE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">EDATE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">○ヶ月後の日付を求める</a></li><li><a href="#toc7" tabindex="0">○ヶ月前の日付を求める</a></li><li><a href="#toc8" tabindex="0">月末日の自動調整を理解する</a></li><li><a href="#toc9" tabindex="0">TODAY関数と組み合わせる</a></li><li><a href="#toc10" tabindex="0">DATE関数と組み合わせる</a></li></ol></li><li><a href="#toc11" tabindex="0">EDATE関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">パターン1: 契約更新日の一覧を作る</a></li><li><a href="#toc13" tabindex="0">パターン2: 定期支払の予定表を作る</a></li><li><a href="#toc14" tabindex="0">パターン3: 試用期間の終了日を計算する</a></li><li><a href="#toc15" tabindex="0">パターン4: 期限切れを自動判定する</a></li><li><a href="#toc16" tabindex="0">パターン5: TEXT関数で「○年○月」形式にする</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">EDATE関数とは？</span></h2>



<p class="wp-block-paragraph"><strong>EDATE関数</strong>（読み方: イーデイト）は、開始日から指定した月数だけ前後した<strong>同じ日</strong>の日付をシリアル値で返す関数です。</p>



<p class="wp-block-paragraph">たとえば <code>2025/4/15</code> を起点に1ヶ月後を指定すると、<strong>2025/5/15</strong>（同じ15日）が返ります。<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>が月末日を返すのに対し、EDATE関数は「同じ日」を返すのがポイントです。</p>



<p class="wp-block-paragraph">Excelの日付は内部的に「シリアル値」という数値で管理されています。1900年1月1日を「1」として、1日ごとに1ずつ増えます。EDATE関数の戻り値もシリアル値なので、セルの表示形式を「日付」にしておくと日付として表示されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>戻り値がシリアル値の数字（45443など）で表示される場合は、セルの表示形式を「日付」に変更してください。セルを選択して <code>Ctrl + 1</code> → 「表示形式」タブ → 「日付」を選びます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">EDATE関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=EDATE(開始日, 月)</code></pre>



<p class="wp-block-paragraph">引数は2つで<strong>どちらも必須</strong>です。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>内容</th></tr></thead><tbody><tr><td><strong>開始日</strong></td><td>必須</td><td>起算日となる日付を指定する。セル参照・<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>などが使える</td></tr><tr><td><strong>月</strong></td><td>必須</td><td>開始日から何ヶ月後（正の数）または何ヶ月前（負の数）かを整数で指定する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>開始日に日付の文字列（<code>"2025/4/15"</code>）を直接指定することもできますが、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>やセル参照を使うほうが確実です。文字列のままだとExcelが日付として認識できずにエラーになることがあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">EDATE関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">○ヶ月後の日付を求める</span></h3>



<p class="wp-block-paragraph">もっとも基本的な使い方です。A1に <code>2025/4/15</code> が入っているとします。</p>



<pre class="wp-block-code"><code>=EDATE(A1, 3)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2025/7/15</strong>（3ヶ月後の同日）</p>



<p class="wp-block-paragraph">第2引数に正の数を指定すると、未来の日付が返ります。「1」で1ヶ月後、「6」で半年後、「12」で1年後です。</p>



<h3 class="wp-block-heading"><span id="toc7">○ヶ月前の日付を求める</span></h3>



<p class="wp-block-paragraph">第2引数に負の数を指定すると、過去の日付を取得できます。A1に <code>2025/4/15</code> が入っているとします。</p>



<pre class="wp-block-code"><code>=EDATE(A1, -3)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2025/1/15</strong>（3ヶ月前の同日）</p>



<p class="wp-block-paragraph">「-1」で1ヶ月前、「-6」で半年前、「-12」で1年前です。</p>



<h3 class="wp-block-heading"><span id="toc8">月末日の自動調整を理解する</span></h3>



<p class="wp-block-paragraph">EDATE関数には月末日を自動調整する仕組みがあります。開始日の「日」が結果月の末日を超える場合、結果月の末日に自動で丸められます。</p>



<p class="wp-block-paragraph">具体例を見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>開始日</th><th>月数</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>2025/1/31</td><td>1</td><td>2025/2/28</td><td>2月は28日までなので月末に調整</td></tr><tr><td>2024/1/31</td><td>1</td><td>2024/2/29</td><td>うるう年は2/29に調整</td></tr><tr><td>2025/3/31</td><td>1</td><td>2025/4/30</td><td>4月は30日までなので月末に調整</td></tr><tr><td>2025/1/15</td><td>1</td><td>2025/2/15</td><td>15日は2月にも存在するのでそのまま</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">31日の月から30日の月へ移動するときなどに自動調整が効きます。契約更新日の計算で「2月は28日に繰り上がる」ことを理解しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc9">TODAY関数と組み合わせる</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせると、今日から○ヶ月後の日付を自動取得できます。</p>



<pre class="wp-block-code"><code>=EDATE(TODAY(), 3)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2026/6/21</strong>（2026年3月21日から3ヶ月後の場合）</p>



<p class="wp-block-paragraph">ファイルを開くたびに自動で更新されるので、期限管理に重宝します。</p>



<h3 class="wp-block-heading"><span id="toc10">DATE関数と組み合わせる</span></h3>



<p class="wp-block-paragraph">年・月・日を直接指定して計算したいときは<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=EDATE(DATE(2025,1,31), 1)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2025/2/28</strong></p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>で日付を作り、そこからEDATE関数で月を加減算するパターンは実務でもよく使います。</p>



<h2 class="wp-block-heading"><span id="toc11">EDATE関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc12">パターン1: 契約更新日の一覧を作る</span></h3>



<p class="wp-block-paragraph">「契約開始日の1年後が更新日」というルールはよくありますよね。A列に契約開始日が入っているとします。</p>



<pre class="wp-block-code"><code>=EDATE(A2, 12)</code></pre>



<p class="wp-block-paragraph">結果の例:</p>



<ul class="wp-block-list"><li><code>2025/4/1</code>（開始日） → <strong>2026/4/1</strong>（更新日）</li><li><code>2025/1/31</code>（開始日） → <strong>2026/1/31</strong>（更新日）</li></ul>



<p class="wp-block-paragraph">1年後の更新日が一発で求められます。複数の契約を管理するときは、下方向にコピーするだけで全件分の更新日が揃います。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン2: 定期支払の予定表を作る</span></h3>



<p class="wp-block-paragraph">月額サービスの支払予定表を作る例です。B1に初回支払日が入っているとします。</p>



<pre class="wp-block-code"><code>=EDATE(B1, ROW()-1)</code></pre>



<p class="wp-block-paragraph">B1に <code>2025/4/15</code> が入っている場合、2行目以降にコピーすると:</p>



<ul class="wp-block-list"><li>2行目: 2025/4/15（0ヶ月後=当月）</li><li>3行目: 2025/5/15（1ヶ月後）</li><li>4行目: 2025/6/15（2ヶ月後）</li></ul>



<p class="wp-block-paragraph"><code>ROW()-1</code> で行番号を月数に変換しています。12行分コピーすれば1年分の予定表が完成します。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン3: 試用期間の終了日を計算する</span></h3>



<p class="wp-block-paragraph">「入社日から3ヶ月後が試用期間の終了日」というパターンです。A列に入社日が入っているとします。</p>



<pre class="wp-block-code"><code>=EDATE(A2, 3)-1</code></pre>



<p class="wp-block-paragraph">結果の例:</p>



<ul class="wp-block-list"><li><code>2025/4/1</code>（入社日） → <strong>2025/6/30</strong>（3ヶ月後の前日）</li><li><code>2025/7/15</code>（入社日） → <strong>2025/10/14</strong>（3ヶ月後の前日）</li></ul>



<p class="wp-block-paragraph"><code>-1</code> で「3ヶ月後の同日の前日」にしています。「3ヶ月間」は「3ヶ月後の同日の前日まで」と解釈する場合に使えます。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン4: 期限切れを自動判定する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と組み合わせて、期限が切れたかどうかを自動判定できます。A列に発行日、B列に有効期間（月数）が入っているとします。</p>



<pre class="wp-block-code"><code>=IF(EDATE(A2, B2)&lt;TODAY(), &quot;期限切れ&quot;, &quot;有効&quot;)</code></pre>



<p class="wp-block-paragraph">結果の例:</p>



<ul class="wp-block-list"><li>発行日: <code>2025/1/15</code>、有効期間: <code>6</code> → 2025/7/15。今日が2026/3/21なら <strong>期限切れ</strong></li><li>発行日: <code>2026/1/15</code>、有効期間: <code>6</code> → 2026/7/15。今日が2026/3/21なら <strong>有効</strong></li></ul>



<p class="wp-block-paragraph">EDATE関数で有効期限日を計算し、<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と比較しています。資格の有効期限管理や保証期間のチェックにも応用できますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン5: TEXT関数で「○年○月」形式にする</span></h3>



<p class="wp-block-paragraph">EDATE関数の結果を見やすく整形したいときは<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=TEXT(EDATE(A1, 6), &quot;yyyy年m月d日&quot;)</code></pre>



<p class="wp-block-paragraph">結果の例:</p>



<ul class="wp-block-list"><li><code>2025/4/15</code> → <strong>2025年10月15日</strong></li></ul>



<p class="wp-block-paragraph">帳票に「2025年10月15日」のように表示したいときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc17">よくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code> エラー</td><td>開始日が日付として認識できない文字列</td><td>セルの値が正しい日付形式か確認する。文字列が入っている場合は<a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数</a>で変換する</td></tr><tr><td><code>#VALUE!</code> エラー</td><td>月の引数に数値以外を指定した</td><td>第2引数は整数を指定する</td></tr><tr><td><code>#NUM!</code> エラー</td><td>計算結果がExcelの日付範囲外</td><td>Excelの日付は1900/1/1〜9999/12/31が有効範囲。範囲外になる月数を指定していないか確認する</td></tr><tr><td>数字（45443など）が表示される</td><td>セルの表示形式が「日付」になっていない</td><td>セルの表示形式を「日付」に変更する（<code>Ctrl + 1</code> → 日付を選択）</td></tr><tr><td>想定と違う日付が返る</td><td>月末の自動調整が働いている</td><td>1/31の1ヶ月後は2/28になる。月末調整の仕組みを確認する</td></tr><tr><td>想定と違う日付が返る</td><td>開始日が文字列として保存されている</td><td>セルが左寄せなら文字列の可能性あり。<a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数</a>で変換するか再入力する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>第2引数の「月」に小数（1.5など）を指定した場合、小数部分は切り捨てられます。<code>=EDATE(A1, 1.9)</code> は <code>=EDATE(A1, 1)</code> と同じ結果です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">似た関数との違い・使い分け</span></h2>



<p class="wp-block-paragraph">EDATE関数と同じ「日付計算」系の関数を比較します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>使い方の例</th><th>結果</th></tr></thead><tbody><tr><td><strong>EDATE</strong></td><td>Nヶ月後の同日を取得</td><td><code>=EDATE("2025/4/15", 1)</code></td><td>2025/5/15</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a></strong></td><td>Nヶ月後の月末日を取得</td><td><code>=EOMONTH("2025/4/15", 1)</code></td><td>2025/5/31</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a></strong></td><td>年・月・日を指定して日付を作成</td><td><code>=DATE(2025,4,15)</code></td><td>2025/4/15</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a></strong></td><td>今日の日付を取得</td><td><code>=TODAY()</code></td><td>（今日の日付）</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></strong></td><td>2つの日付間の期間を求める</td><td><code>=DATEDIF(A1,B1,"M")</code></td><td>月数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>使い分けのポイント</strong></p>



<ul class="wp-block-list"><li>「翌月の同じ日が欲しい」→ <strong>EDATE関数</strong>（同日を返す）</li><li>「翌月末の日付が欲しい」→ <strong><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a></strong>（月末日を自動計算）</li><li>「年・月・日を指定して日付を組み立てたい」→ <strong><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a></strong></li><li>「2つの日付の間が何ヶ月か知りたい」→ <strong><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>EDATE関数は<strong>同じ日</strong>を返し、<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>は<strong>月末日</strong>を返すのが最大の違いです。たとえば4/15の1ヶ月後は、EDATEなら「5/15」、EOMONTHなら「5/31」です。契約更新日に使うならEDATE、支払期日（翌月末払い）に使うならEOMONTHが適しています。</p></blockquote>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>でも <code>=DATE(YEAR(A1), MONTH(A1)+3, DAY(A1))</code> と書けば3ヶ月後を求められます。ただし月末の自動調整が異なるので、EDATE関数のほうが意図が明確です。</p>



<p class="wp-block-paragraph">日付計算の全体像は<a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算 完全攻略ガイド</a>でまとめています。</p>



<h2 class="wp-block-heading"><span id="toc19">まとめ</span></h2>



<p class="wp-block-paragraph">EDATE関数は、基準日から○ヶ月後・○ヶ月前の<strong>同じ日</strong>を自動計算する関数です。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=EDATE(開始日, 月)</code> &#8212; 引数は2つ、どちらも必須</li><li><strong>戻り値</strong>: 指定した月数後（または前）の同日のシリアル値</li><li><strong>月末調整</strong>: 開始日が月末の場合、結果も月末に自動調整される（1/31→2/28など）</li><li><strong>よく使う組み合わせ</strong>: <a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>で今日起算の期限管理、<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>で期限切れ判定</li><li><strong>実務活用</strong>: 契約更新日の計算、定期支払の予定表、試用期間終了日</li><li><strong>関連関数</strong>: <a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>と目的に応じて使い分ける</li></ul>



<p class="wp-block-paragraph">○ヶ月後の計算はカレンダーを見ながら手で数えるとミスしやすい部分です。EDATE関数で自動化して、契約管理や期限チェックを効率よく回してみてください。</p>



<h3 class="wp-block-heading"><span id="toc20">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-day/">DAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-date-calculation-guide/">日付計算 完全攻略ガイド</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別のエクセル関数一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-edate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
