<?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>日付計算 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e6%97%a5%e4%bb%98%e8%a8%88%e7%ae%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:47:54 +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>日付計算 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートで日付計算をする方法｜年齢・日数・営業日・月末の4シーン別に使う関数を整理</title>
		<link>https://mashukabu.com/spreadsheet-date-calculation-guide/</link>
					<comments>https://mashukabu.com/spreadsheet-date-calculation-guide/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 23 May 2026 08:00:03 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATEDIF]]></category>
		<category><![CDATA[EOMONTH]]></category>
		<category><![CDATA[NETWORKDAYS]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[営業日]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6968</guid>

					<description><![CDATA[スプレッドシートの日付計算で使う関数を実務4シーン別に整理。年齢計算（DATEDIF/YEARFRAC）、日数計算（DAYS/引き算）、営業日計算（NETWORKDAYS/WORKDAY）、月末取得（EOMONTH/EDATE）の使い分けを早見表で解説。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「社員名簿の年齢を自動で計算したい」「契約終了まであと何営業日か知りたい」。スプレッドシートで日付を扱おうとすると、関数がたくさん出てきて、どれを使えばいいか迷いますよね。</p>



<p class="wp-block-paragraph">実は、日付計算で使う関数は「年齢」「日数」「営業日」「月末」の4つのシーンに分けて整理できます。シーンごとに最適な関数を覚えれば、迷うことはなくなりますよ。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートで日付計算をする方法を4シーン別にまとめました。早見表とフローチャートで、自分が今使うべき関数がひと目でわかる構成にしています。</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">スプレッドシート日付計算の関数早見表【結論から】</a><ol><li><a href="#toc2" tabindex="0">選択フローチャート</a></li><li><a href="#toc3" tabindex="0">スプレッドシートで日付を扱う前に</a></li></ol></li><li><a href="#toc4" tabindex="0">【シーン1】年齢を自動計算する関数の使い分け</a><ol><li><a href="#toc5" tabindex="0">DATEDIF関数で年齢を求める基本</a></li><li><a href="#toc6" tabindex="0">スプレッドシートのDATEDIFは公式サポートされている</a></li><li><a href="#toc7" tabindex="0">YEARFRAC関数で「小数の年齢」を求める</a></li><li><a href="#toc8" tabindex="0">TODAY関数の揮発性に注意</a></li></ol></li><li><a href="#toc9" tabindex="0">【シーン2】日数を計算する関数の使い分け</a><ol><li><a href="#toc10" tabindex="0">日付の引き算でシンプルに日数を求める</a></li><li><a href="#toc11" tabindex="0">DAYS関数で日数を数える</a></li><li><a href="#toc12" tabindex="0">DATEDIF関数の&#8221;D&#8221;単位も使える</a></li></ol></li><li><a href="#toc13" tabindex="0">【シーン3】営業日を計算する関数の使い分け</a><ol><li><a href="#toc14" tabindex="0">NETWORKDAYS関数で営業日を数える</a></li><li><a href="#toc15" tabindex="0">祝日リストの作り方</a></li><li><a href="#toc16" tabindex="0">WORKDAY関数で「N営業日後」を求める</a></li><li><a href="#toc17" tabindex="0">NETWORKDAYS.INTL / WORKDAY.INTLで休日パターンをカスタマイズ</a></li><li><a href="#toc18" tabindex="0">WEEKDAY関数でデバッグする</a></li></ol></li><li><a href="#toc19" tabindex="0">【シーン4】月末・月初を取得する関数の使い分け</a><ol><li><a href="#toc20" tabindex="0">EOMONTH関数で月末を一発取得</a></li><li><a href="#toc21" tabindex="0">翌月末・翌々月末の支払期日を計算</a></li><li><a href="#toc22" tabindex="0">月初日を求める2つの方法</a></li><li><a href="#toc23" tabindex="0">EDATE関数で「Nヶ月後の同日」を求める</a></li></ol></li><li><a href="#toc24" tabindex="0">日付計算でよくあるトラブルと対処法</a><ol><li><a href="#toc25" tabindex="0">トラブル1: 日付なのに引き算ができない</a></li><li><a href="#toc26" tabindex="0">トラブル2: 結果に「1899/12/30」や「0」が出る</a></li><li><a href="#toc27" tabindex="0">トラブル3: NETWORKDAYSの結果が想定と1日違う</a></li><li><a href="#toc28" tabindex="0">トラブル4: TODAYの値が翌日になっている</a></li><li><a href="#toc29" tabindex="0">トラブル5: #NUM!エラーが出る</a></li></ol></li><li><a href="#toc30" tabindex="0">よくある質問</a><ol><li><a href="#toc31" tabindex="0">Q. ExcelのDATEDIFがスプレッドシートでも使えますか？</a></li><li><a href="#toc32" tabindex="0">Q. 年齢を「○歳○ヶ月」と表示したい場合は？</a></li><li><a href="#toc33" tabindex="0">Q. 祝日リストはどこから取得すればよいですか？</a></li><li><a href="#toc34" tabindex="0">Q. 日曜だけ休みのお店の営業日を出したいです</a></li><li><a href="#toc35" tabindex="0">Q. ExcelとスプレッドシートでDAYS関数の引数順は同じ？</a></li><li><a href="#toc36" tabindex="0">Q. TODAYで出した日付を毎日更新せずに固定したいです</a></li></ol></li><li><a href="#toc37" tabindex="0">まとめ｜シーン別に関数を選べば日付計算で迷わない</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシート日付計算の関数早見表【結論から】</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>年齢を求める</td><td><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a></td><td><code>=DATEDIF(A1,TODAY(),"Y")</code></td></tr><tr><td>2つの日付の日数差</td><td>日付の引き算 / <a href="https://mashukabu.com/spreadsheet-days-function/">DAYS関数</a></td><td><code>=B1-A1</code></td></tr><tr><td>営業日を数える</td><td><a href="https://mashukabu.com/spreadsheet-networkdays-function/">NETWORKDAYS関数</a></td><td><code>=NETWORKDAYS(A1,B1)</code></td></tr><tr><td>N営業日後の日付</td><td><a href="https://mashukabu.com/spreadsheet-workday-function/">WORKDAY関数</a></td><td><code>=WORKDAY(A1,5)</code></td></tr><tr><td>月末日を求める</td><td><a href="https://mashukabu.com/spreadsheet-eomonth-function/">EOMONTH関数</a></td><td><code>=EOMONTH(A1,0)</code></td></tr><tr><td>Nヶ月後の同日</td><td><a href="https://mashukabu.com/spreadsheet-edate-function/">EDATE関数</a></td><td><code>=EDATE(A1,3)</code></td></tr><tr><td>期間の年数・月数</td><td><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a></td><td><code>=DATEDIF(A1,B1,"M")</code></td></tr><tr><td>休日パターンをカスタム</td><td><a href="https://mashukabu.com/spreadsheet-networkdays-intl-function/">NETWORKDAYS.INTL関数</a></td><td><code>=NETWORKDAYS.INTL(A1,B1,11)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらこの表を見ると、使うべき関数がすぐにわかりますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">選択フローチャート</span></h3>



<p class="wp-block-paragraph">どの関数を使うか迷ったら、次の3ステップで判断してください。</p>



<ol class="wp-block-list"><li><strong>何を計算したい？</strong></li></ol>



<ul class="wp-block-list"><li>期間の長さ（年・月・日）→ ステップ2へ</li><li>特定の日付（月末・Nヶ月後など）→ ステップ3へ</li></ul>



<ol class="wp-block-list"><li><strong>期間の単位は？</strong></li></ol>



<ul class="wp-block-list"><li>年齢などの満年数 → <strong>DATEDIF（&#8221;Y&#8221;単位）</strong></li><li>月数 → <strong>DATEDIF（&#8221;M&#8221;単位）</strong></li><li>暦の日数 → <strong>日付の引き算</strong> または <strong>DAYS</strong></li><li>営業日数 → <strong>NETWORKDAYS</strong> / <strong>NETWORKDAYS.INTL</strong></li></ul>



<ol class="wp-block-list"><li><strong>求めたい日付は？</strong></li></ol>



<ul class="wp-block-list"><li>月末日 → <strong>EOMONTH</strong></li><li>Nヶ月後の同日 → <strong>EDATE</strong></li><li>N営業日後 → <strong>WORKDAY</strong> / <strong>WORKDAY.INTL</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>迷ったらまずDATEDIFと引き算</strong></p><p>「期間を知りたい」場面の8割は、DATEDIFか引き算で解決します。「特定の日付を知りたい」場面の大半は、EOMONTHかEDATEで足りますよ。この4関数を押さえれば、日付計算で困ることは大幅に減ります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc3">スプレッドシートで日付を扱う前に</span></h3>



<p class="wp-block-paragraph">スプレッドシートは日付を内部的に「シリアル値」という数値で管理しています。1899年12月30日を0として、そこからの経過日数が日付のシリアル値です。</p>



<p class="wp-block-paragraph">たとえば2026年1月1日は「46023」という数値です。普段は日付として表示されますが、計算するときは数値同士の演算になります。</p>



<p class="wp-block-paragraph">このしくみのおかげで、日付の引き算がそのまま日数差として使えます。ここからは各シーンの詳しい使い方を順番に解説していきますね。</p>



<h2 class="wp-block-heading"><span id="toc4">【シーン1】年齢を自動計算する関数の使い分け</span></h2>



<p class="wp-block-paragraph">人事・総務の業務でよく出てくるのが年齢計算です。スプレッドシートの社員名簿や顧客リストで「生年月日から今日時点の年齢を出したい」場面ですね。</p>



<h3 class="wp-block-heading"><span id="toc5">DATEDIF関数で年齢を求める基本</span></h3>



<p class="wp-block-paragraph">スプレッドシートで年齢計算をするときの定番が<a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>です。</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>=DATEDIF(生年月日, TODAY(), &quot;Y&quot;)</code></pre>



<p class="wp-block-paragraph">第1引数に生年月日のセル、第2引数に<a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>、第3引数に <code>"Y"</code> を指定します。これで「満年齢」が数値で返ります。</p>



<p class="wp-block-paragraph">たとえばセルA2に <code>1990/4/15</code> と入力されている場合、数式は次のとおりです。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-date-calculation-guide/02_formula_datedif-basic.png/">_images/spreadsheet-date-calculation-guide/02_formula_datedif-basic.png</a></p>



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



<p class="wp-block-paragraph">2026年5月22日時点では <code>36</code> と表示されます（誕生日を過ぎているため）。</p>



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



<p class="wp-block-paragraph">DATEDIF関数の第3引数（単位）を変えると、年数以外の期間も求められます。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>用途の例</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>期間の年数</td><td>年齢計算</td></tr><tr><td>&#8220;M&#8221;</td><td>期間の月数</td><td>在籍月数の計算</td></tr><tr><td>&#8220;D&#8221;</td><td>期間の日数</td><td>経過日数の計算</td></tr><tr><td>&#8220;YM&#8221;</td><td>年数を無視した月数</td><td>「○年○ヶ月」の月部分</td></tr><tr><td>&#8220;MD&#8221;</td><td>年数と月数を無視した日数</td><td>「○年○ヶ月○日」の日部分</td></tr><tr><td>&#8220;YD&#8221;</td><td>年数を無視した日数</td><td>誕生日まで日数の計算</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「○年○ヶ月」と表示したい場合は、次のように組み合わせます。</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">A2が <code>1990/4/15</code> なら「36年1ヶ月」のように返ります。勤続年数の表示などにも使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">スプレッドシートのDATEDIFは公式サポートされている</span></h3>



<p class="wp-block-paragraph">Excelで使う方は気になる「DATEDIFは非公式」問題ですが、スプレッドシートではDATEDIFが公式ヘルプに記載されています。安心して使えますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>スプレッドシート版DATEDIFの位置づけ</strong></p><p>Google公式ドキュメントにも構文と例が掲載されていて、Excelよりも「正式扱い」になっています。オートコンプリートにも普通に表示されます。</p></blockquote>



<p class="wp-block-paragraph">ただし、注意点が1つあります。<code>"MD"</code> 単位（年と月を無視した日数）はうるう年絡みで結果がずれる場合があります。重要な計算で日単位の端数まで正確に出したいときは、後述するYEAR・MONTH・DAY関数の組み合わせで再現確認するのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc7">YEARFRAC関数で「小数の年齢」を求める</span></h3>



<p class="wp-block-paragraph">「勤続年数を17.5年のように小数で表示したい」というケースには<a href="https://mashukabu.com/spreadsheet-yearfrac-function/">YEARFRAC関数</a>が便利です。</p>



<pre class="wp-block-code"><code>=YEARFRAC(開始日, 終了日, [基準])</code></pre>



<p class="wp-block-paragraph">YEARFRACは期間の年数を小数で返します（YEARFRACは「期間が1年に占める割合」を意味する関数です）。</p>



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



<p class="wp-block-paragraph">A2が <code>1990/4/15</code> の場合、<code>36.10...</code> のような小数が返ります。第3引数の <code>1</code> は「実日数ベース」の意味で、うるう年もきちんと考慮してくれます。</p>



<p class="wp-block-paragraph">満年齢として整数で扱いたい場合は、INT関数（小数点以下を切り捨てる関数）で囲むとよいです。</p>



<pre class="wp-block-code"><code>=INT(YEARFRAC(A2, TODAY(), 1))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式の長さ</th><th>精度</th><th>おすすめ度</th></tr></thead><tbody><tr><td>DATEDIF</td><td>短い</td><td>高い（&#8221;Y&#8221;単位）</td><td>最もおすすめ</td></tr><tr><td>YEARFRAC+INT</td><td>短い</td><td>やや低い（うるう年で1日ずれる場合あり）</td><td>簡易計算向き</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったら、年齢計算はDATEDIFを選んでおけば間違いありません。</p>



<h3 class="wp-block-heading"><span id="toc8">TODAY関数の揮発性に注意</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>は「今日の日付」を返してくれて便利ですが、1つだけ覚えておきたい性質があります。ファイルを開くたびや編集のたびに自動で再計算されるんです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>日付を固定したいときは Ctrl + ;</strong></p><p>「契約日」のように後で変わってほしくない日付には、TODAY()ではなく <code>Ctrl + ;</code>（Macは <code>⌘ + ;</code>）のショートカットで今日の日付を直接入力すると、固定値として保存できますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">【シーン2】日数を計算する関数の使い分け</span></h2>



<p class="wp-block-paragraph">「プロジェクトの残り日数」や「契約期間の日数」など、2つの日付の間の日数を数えたい場面を見ていきましょう。スプレッドシートでは3つの方法があります。</p>



<h3 class="wp-block-heading"><span id="toc10">日付の引き算でシンプルに日数を求める</span></h3>



<p class="wp-block-paragraph">もっとも簡単な方法は、日付どうしの引き算です。</p>



<pre class="wp-block-code"><code>=B2-A2</code></pre>



<p class="wp-block-paragraph">スプレッドシートの日付はシリアル値で管理されているので、引き算するだけで日数差が求まります。</p>



<p class="wp-block-paragraph">たとえばA2に <code>2026/4/1</code>、B2に <code>2026/9/30</code> と入力して引き算すると、<code>182</code> と表示されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>結果が日付で表示されてしまったら</strong></p><p>結果が <code>182</code> ではなく日付（<code>1900/6/30</code> など）で表示される場合は、セルの表示形式を「数値」または「自動」に変更してください。引き算の元セルが「日付」書式だと、結果セルも自動で同じ書式になることがあるんです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">DAYS関数で日数を数える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-days-function/">DAYS関数</a>は日数を求める専用の関数です。</p>



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



<p class="wp-block-paragraph">引き算と同じ結果が得られます。注意したいのは引数の順序で、第1引数が「終了日」、第2引数が「開始日」になります。引き算とは逆の順番ですね。</p>



<pre class="wp-block-code"><code>=DAYS(B2, A2)</code></pre>



<p class="wp-block-paragraph">DAYS関数のメリットは、結果が自動で数値書式になることです。表示形式を気にせず使えるので、引き算より少し楽ですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">DATEDIF関数の&#8221;D&#8221;単位も使える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>の第3引数を <code>"D"</code> にすると、日数差を取得できます。</p>



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



<p class="wp-block-paragraph">引き算やDAYSと同じ結果になりますが、DATEDIFには「開始日 > 終了日でエラーになる」という性質があります。逆順を許したくない場面ではかえって便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式</th><th>メリット</th></tr></thead><tbody><tr><td>引き算</td><td><code>=B2-A2</code></td><td>シンプル。計算が速い</td></tr><tr><td>DAYS関数</td><td><code>=DAYS(B2,A2)</code></td><td>結果が自動で数値書式</td></tr><tr><td>DATEDIF(&#8220;D&#8221;)</td><td><code>=DATEDIF(A2,B2,"D")</code></td><td>月数・年数も同じ関数で扱える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務ではシンプルな引き算で十分なケースがほとんどです。複数の単位（日・月・年）を切り替えたい場面ではDATEDIFを使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc13">【シーン3】営業日を計算する関数の使い分け</span></h2>



<p class="wp-block-paragraph">「土日祝を除いた稼働日だけを数えたい」「今日から5営業日後の日付が知りたい」。プロジェクト管理や納期計算でよく出てくるシーンですね。</p>



<h3 class="wp-block-heading"><span id="toc14">NETWORKDAYS関数で営業日を数える</span></h3>



<p class="wp-block-paragraph">開始日から終了日までの営業日数を求めるなら、<a href="https://mashukabu.com/spreadsheet-networkdays-function/">NETWORKDAYS関数</a>です。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-date-calculation-guide/04_data_workdays-table.png/">_images/spreadsheet-date-calculation-guide/04_data_workdays-table.png</a></p>



<pre class="wp-block-code"><code>=NETWORKDAYS(開始日, 終了日, [祝日])</code></pre>



<p class="wp-block-paragraph">第3引数の祝日リストは省略可能です。省略すると土日だけが休みとして計算されます。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-date-calculation-guide/05_formula_networkdays-basic.png/">_images/spreadsheet-date-calculation-guide/05_formula_networkdays-basic.png</a></p>



<pre class="wp-block-code"><code>=NETWORKDAYS(A2, B2)</code></pre>



<p class="wp-block-paragraph">A2が <code>2026/4/1</code>、B2が <code>2026/4/30</code> の場合、その範囲の平日数（土日除く）が返ります。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-date-calculation-guide/06_result_networkdays-basic.png/">_images/spreadsheet-date-calculation-guide/06_result_networkdays-basic.png</a></p>



<p class="wp-block-paragraph">祝日も除外したい場合は、別のセル範囲に祝日リストを用意します。たとえばD2:D15に祝日を入力したら、こう書けます。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(A2, B2, D2:D15)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>両端日を含む点に注意</strong></p><p>NETWORKDAYS関数は開始日と終了日の<strong>両方を含めて</strong>カウントします。「4月1日から4月3日」は3日（月・火・水）です。引き算の <code>B2-A2</code> は2日になる点が違うので注意してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">祝日リストの作り方</span></h3>



<p class="wp-block-paragraph">実務でよく使う日本の祝日リストは、内閣府の公式CSV（「国民の祝日について」https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html ）から取得できます。</p>



<p class="wp-block-paragraph">別シートに以下のような表を作っておくと再利用しやすいですよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>祝日名</th></tr></thead><tbody><tr><td>2026/1/1</td><td>元日</td></tr><tr><td>2026/1/12</td><td>成人の日</td></tr><tr><td>2026/2/11</td><td>建国記念の日</td></tr><tr><td>&#8230;</td><td>&#8230;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このシートのA列を参照範囲として使えば、毎年祝日表を更新するだけで全シートに反映されます。</p>



<h3 class="wp-block-heading"><span id="toc16">WORKDAY関数で「N営業日後」を求める</span></h3>



<p class="wp-block-paragraph">「今日から5営業日後はいつか」を計算したいなら、<a href="https://mashukabu.com/spreadsheet-workday-function/">WORKDAY関数</a>です。</p>



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



<p class="wp-block-paragraph">第2引数に進めたい営業日数を入れると、土日（と祝日）を自動でスキップして日付を返してくれます。</p>



<pre class="wp-block-code"><code>=WORKDAY(TODAY(), 5)</code></pre>



<p class="wp-block-paragraph">今日が2026年5月22日（金）の場合、5営業日後は2026年5月29日（金）になります。土日を飛ばして計算されますね。</p>



<p class="wp-block-paragraph">第3引数で祝日リストを渡せば、祝日もスキップできます。</p>



<pre class="wp-block-code"><code>=WORKDAY(A2, 10, D2:D15)</code></pre>



<h3 class="wp-block-heading"><span id="toc17">NETWORKDAYS.INTL / WORKDAY.INTLで休日パターンをカスタマイズ</span></h3>



<p class="wp-block-paragraph">「うちのお店は日曜のみ休み」「水曜と日曜が定休」のように、土日以外の休日パターンに対応したい場合は<a href="https://mashukabu.com/spreadsheet-networkdays-intl-function/">NETWORKDAYS.INTL関数</a>と<a href="https://mashukabu.com/spreadsheet-workday-intl-function/">WORKDAY.INTL関数</a>を使います。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS.INTL(開始日, 終了日, [週末], [祝日])
=WORKDAY.INTL(開始日, 営業日数, [週末], [祝日])</code></pre>



<p class="wp-block-paragraph">第3引数の週末コードでよく使うパターンはこちらです。</p>



<figure class="wp-block-table"><table><thead><tr><th>週末コード</th><th>休日</th><th>使いどころ</th></tr></thead><tbody><tr><td>1（既定）</td><td>土曜・日曜</td><td>一般企業</td></tr><tr><td>2</td><td>日曜・月曜</td><td>月曜定休の店舗</td></tr><tr><td>3</td><td>月曜・火曜</td><td>火曜定休の店舗</td></tr><tr><td>11</td><td>日曜のみ</td><td>土曜営業の小売・飲食</td></tr><tr><td>12</td><td>月曜のみ</td><td>月曜のみ休業の施設</td></tr><tr><td>17</td><td>土曜のみ</td><td>日曜営業のサービス業</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば日曜のみ休みの飲食店で営業日を数える場合はこうなります。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS.INTL(A2, B2, 11)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>7桁の文字列で曜日を細かく指定</strong></p><p>第3引数には <code>"0010001"</code> のような7桁の文字列も指定できます。月・火・水・木・金・土・日の順で、休日は1・出勤は0です。「水曜と日曜だけ休み」なら <code>"0010001"</code> ですね。番号で表現できないシフトでも自由に組めますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc18">WEEKDAY関数でデバッグする</span></h3>



<p class="wp-block-paragraph">「営業日計算の結果が想定と違う」というときは、<a href="https://mashukabu.com/spreadsheet-weekday-function/">WEEKDAY関数</a>（指定した日付の曜日を1〜7の数値で返す関数）で曜日を確認するとデバッグがはかどります。</p>



<pre class="wp-block-code"><code>=WEEKDAY(A2)</code></pre>



<p class="wp-block-paragraph">1（日）〜7（土）の数値が返るので、土日や祝日の判定がうまくいっているか確認できます。</p>



<h2 class="wp-block-heading"><span id="toc19">【シーン4】月末・月初を取得する関数の使い分け</span></h2>



<p class="wp-block-paragraph">経理・請求業務で活躍するのが月末日の計算です。「今月の最終日はいつか」「翌月末の支払期日を出したい」「月初日を取得したい」場面を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">EOMONTH関数で月末を一発取得</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-eomonth-function/">EOMONTH関数</a>は、指定した月数後（または前）の月末日を返してくれます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/05/07_data_eomonth-table.png" alt="07 data eomonth table" /></figure>



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



<p class="wp-block-paragraph">第2引数の月数で「何ヶ月後の月末か」を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>意味</th><th>結果の例（A2が2026/4/15の場合）</th></tr></thead><tbody><tr><td><code>=EOMONTH(A2, 0)</code></td><td>当月末</td><td>2026/4/30</td></tr><tr><td><code>=EOMONTH(A2, 1)</code></td><td>翌月末</td><td>2026/5/31</td></tr><tr><td><code>=EOMONTH(A2, -1)</code></td><td>前月末</td><td>2026/3/31</td></tr><tr><td><code>=EOMONTH(A2, 2)</code></td><td>翌々月末</td><td>2026/6/30</td></tr><tr><td><code>=EOMONTH(A2, 12)</code></td><td>1年後の月末</td><td>2027/4/30</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">「月数 = 0」で当月末、「-1」で前月末、「1」で翌月末になります。覚えやすいですね。</p>



<h3 class="wp-block-heading"><span id="toc21">翌月末・翌々月末の支払期日を計算</span></h3>



<p class="wp-block-paragraph">請求書の支払条件が「翌月末払い」「翌々月末払い」の場合、EOMONTH関数で期日を自動計算できます。</p>



<p class="wp-block-paragraph"><strong>翌月末払いの場合</strong></p>



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



<p class="wp-block-paragraph">A2に請求日を入れておけば、自動で翌月末の日付が返ります。</p>



<p class="wp-block-paragraph"><strong>翌々月末払いの場合</strong></p>



<pre class="wp-block-code"><code>=EOMONTH(A2, 2)</code></pre>



<p class="wp-block-paragraph">請求書テンプレートに組み込んでおくと、支払期日の入力ミスがなくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc22">月初日を求める2つの方法</span></h3>



<p class="wp-block-paragraph">EOMONTHには「月初を返す関数」はありませんが、ちょっとした工夫で月初も簡単に取得できます。</p>



<p class="wp-block-paragraph"><strong>方法1: EOMONTHで前月末を求めて+1する</strong></p>



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



<p class="wp-block-paragraph">前月末に1日を足せば、当月1日になります。</p>



<p class="wp-block-paragraph"><strong>方法2: <a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>で年と月を指定する</strong></p>



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



<p class="wp-block-paragraph">A2の年と月をそのまま使い、日を1にすることで月初を取得できます。読みやすさはDATE版のほうが上ですね。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>おすすめ式</th></tr></thead><tbody><tr><td>当月の月末</td><td><code>=EOMONTH(A1, 0)</code></td></tr><tr><td>当月の月初</td><td><code>=DATE(YEAR(A1), MONTH(A1), 1)</code></td></tr><tr><td>翌月の月末</td><td><code>=EOMONTH(A1, 1)</code></td></tr><tr><td>翌月の月初</td><td><code>=EOMONTH(A1, 0) + 1</code></td></tr><tr><td>前月末</td><td><code>=EOMONTH(A1, -1)</code></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DATE関数で月末を取得するテクニック</strong></p><p>DATE関数は「範囲外の日付」を自動補正する特性を持っています。<code>=DATE(YEAR(A1), MONTH(A1)+1, 0)</code> のように「翌月の0日」を指定すると、当月末日が返ります。2026年3月の場合、DATE(2026, 3, 0) = 2026/2/28 です（2026年はうるう年でないため2/29は存在しません）。月末取得はEOMONTHのほうがシンプルですが、DATE関数のこの動作を知っておくと応用が広がりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc23">EDATE関数で「Nヶ月後の同日」を求める</span></h3>



<p class="wp-block-paragraph">「月末ではなく、Nヶ月後の同じ日が欲しい」場面では<a href="https://mashukabu.com/spreadsheet-edate-function/">EDATE関数</a>を使います。</p>



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



<p class="wp-block-paragraph">たとえば契約開始日から3ヶ月後の同日を出したい場合はこうです。</p>



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



<p class="wp-block-paragraph">A2が <code>2026/4/15</code> なら <code>2026/7/15</code> が返ります。月末日が開始日の場合は、翌月の月末に自動調整されます。</p>



<p class="wp-block-paragraph">たとえば <code>=EDATE("2026/1/31", 1)</code> は <code>2026/2/28</code> を返します（2月31日は存在しないため、月末側に寄せられる仕様です）。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>EOMONTH と EDATE の使い分け</strong></p><p>「月末日を求めたい」ならEOMONTH、「Nヶ月後の同日を求めたい」ならEDATEです。両方とも経理・契約管理で使うので、セットで覚えておくと便利ですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc24">日付計算でよくあるトラブルと対処法</span></h2>



<p class="wp-block-paragraph">スプレッドシートの日付計算で、初心者がつまずきやすいトラブルとその対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc25">トラブル1: 日付なのに引き算ができない</span></h3>



<p class="wp-block-paragraph">「セルに2026/4/1と入っているのに、引き算したら #VALUE! エラーが出る」というケースです。</p>



<p class="wp-block-paragraph">原因は、見た目は日付でも、実はテキスト型として保存されているからです。<a href="https://mashukabu.com/spreadsheet-isdate-function/">ISDATE関数</a>（セルの値が日付型かどうかを判定する関数）で確認できます。</p>



<pre class="wp-block-code"><code>=ISDATE(A2)</code></pre>



<p class="wp-block-paragraph">FALSEが返れば、テキスト型です。対処は<a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a>（テキストの日付をシリアル値に変換する関数）で数値に変換します。</p>



<pre class="wp-block-code"><code>=DATEVALUE(A2)</code></pre>



<p class="wp-block-paragraph">CSVインポートやコピペで取り込んだ日付は、テキスト扱いになりがちなので注意してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc26">トラブル2: 結果に「1899/12/30」や「0」が出る</span></h3>



<p class="wp-block-paragraph">EOMONTHやDAYSの結果が <code>1899/12/30</code> や <code>1900/1/0</code> のような変な日付になることがあります。</p>



<p class="wp-block-paragraph">これは「空のセルを参照した」ときに起きるんです。空のセルは0（シリアル値）として扱われ、それを日付書式で表示すると基準日が出てしまいます。</p>



<p class="wp-block-paragraph">対処はIF関数で空セルチェックを入れることです。</p>



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



<p class="wp-block-paragraph">A2が空なら空文字を返すようにしておくと、見た目もきれいに保てますよ。</p>



<h3 class="wp-block-heading"><span id="toc27">トラブル3: NETWORKDAYSの結果が想定と1日違う</span></h3>



<p class="wp-block-paragraph">「土日を除いた営業日を数えたら、計算が1日多い（または少ない）」というケースですね。</p>



<p class="wp-block-paragraph">NETWORKDAYSは<strong>開始日と終了日の両方を含めて</strong>カウントします。一方、引き算（B2-A2）は両端を含まない計算です。この違いで結果がずれます。</p>



<pre class="wp-block-code"><code>A2 = 2026/4/1（水）
B2 = 2026/4/3（金）

=B2-A2                → 2 （引き算は4/1を含まない）
=NETWORKDAYS(A2, B2)  → 3 （水・木・金の3日）</code></pre>



<p class="wp-block-paragraph">どちらの意味合いか整理してから使い分けてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc28">トラブル4: TODAYの値が翌日になっている</span></h3>



<p class="wp-block-paragraph">「昨日入力したTODAY()の結果が、今日見ると違う日付になっている」というご相談を受けることがあります。</p>



<p class="wp-block-paragraph">原因はTODAY関数の揮発性です。ファイルを開くたびに再計算されるので、入力時の日付は保存されません。</p>



<p class="wp-block-paragraph">過去の日付を残したい場合は、TODAY()を使わず <code>Ctrl + ;</code>（Macは <code>⌘ + ;</code>）のショートカットで日付を直接入力します。これは固定値として保存されますよ。</p>



<h3 class="wp-block-heading"><span id="toc29">トラブル5: #NUM!エラーが出る</span></h3>



<p class="wp-block-paragraph">DATEDIFで「開始日 > 終了日」になっていると <code>#NUM!</code> エラーが出ます。</p>



<pre class="wp-block-code"><code>=DATEDIF(&quot;2026/4/30&quot;, &quot;2026/4/1&quot;, &quot;Y&quot;)  → #NUM!</code></pre>



<p class="wp-block-paragraph">引数の順番（第1引数が古い日付、第2引数が新しい日付）を確認してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処</th></tr></thead><tbody><tr><td><code>#NUM!</code></td><td>DATEDIFで開始日 > 終了日</td><td>引数順を確認</td></tr><tr><td><code>#VALUE!</code></td><td>テキスト型の日付を計算</td><td>DATEVALUEで変換</td></tr><tr><td><code>#NAME?</code></td><td>関数名スペルミス（NETWORKDAYなど）</td><td>NETWORKDAYS（複数形）に修正</td></tr><tr><td><code>#REF!</code></td><td>祝日範囲のセル削除</td><td>範囲を再指定</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc30">よくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc31">Q. ExcelのDATEDIFがスプレッドシートでも使えますか？</span></h3>



<p class="wp-block-paragraph">A. 使えます。むしろスプレッドシートではDATEDIFが公式ヘルプに記載されていて、Excelよりも正式な扱いです。オートコンプリートにも表示されますし、安心して使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc32">Q. 年齢を「○歳○ヶ月」と表示したい場合は？</span></h3>



<p class="wp-block-paragraph">A. DATEDIF関数を2つ組み合わせます。</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"><code>"Y"</code> で年部分、<code>"YM"</code> で年を無視した月部分が取れるので、文字列連結で組み合わせるだけです。</p>



<h3 class="wp-block-heading"><span id="toc33">Q. 祝日リストはどこから取得すればよいですか？</span></h3>



<p class="wp-block-paragraph">A. 内閣府の公式ページからCSV形式で取得できます（https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html ）。昭和30年から翌年分まで含まれているので、勤怠管理や納期計算で活用してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc34">Q. 日曜だけ休みのお店の営業日を出したいです</span></h3>



<p class="wp-block-paragraph">A. NETWORKDAYS.INTL関数で週末コード <code>11</code> を指定します。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS.INTL(A2, B2, 11)</code></pre>



<p class="wp-block-paragraph">第4引数に祝日リストを追加すれば、祝日も除外できます。</p>



<h3 class="wp-block-heading"><span id="toc35">Q. ExcelとスプレッドシートでDAYS関数の引数順は同じ？</span></h3>



<p class="wp-block-paragraph">A. 同じです。両方とも「DAYS(終了日, 開始日)」の順です。引き算「B2-A2」とは順番が逆になる点だけ注意してください。</p>



<h3 class="wp-block-heading"><span id="toc36">Q. TODAYで出した日付を毎日更新せずに固定したいです</span></h3>



<p class="wp-block-paragraph">A. 値で固定したい場合は2つの方法があります。</p>



<ol class="wp-block-list"><li>入力時に <code>Ctrl + ;</code>（Macは <code>⌘ + ;</code>）でその日の日付を直接入力する</li><li>TODAY()を入力したセルをコピーして「値のみ貼り付け」（<code>Ctrl + Shift + V</code>）で上書きする</li></ol>



<p class="wp-block-paragraph">履歴を残しながら毎日自動で「今日の日付」が必要なら、Google Apps Scriptで日付を自動転記する方法もありますよ。</p>



<h2 class="wp-block-heading"><span id="toc37">まとめ｜シーン別に関数を選べば日付計算で迷わない</span></h2>



<p class="wp-block-paragraph">スプレッドシートの日付計算で使う関数を、4シーン別に整理しました。最後にもう一度まとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>シーン</th><th>主な関数</th><th>一言メモ</th></tr></thead><tbody><tr><td>年齢計算</td><td>DATEDIF / YEARFRAC / TODAY</td><td>満年齢ならDATEDIF &#8220;Y&#8221; 一択</td></tr><tr><td>日数計算</td><td>引き算 / DAYS / DATEDIF &#8220;D&#8221;</td><td>単純な日数なら引き算が最速</td></tr><tr><td>営業日計算</td><td>NETWORKDAYS / WORKDAY / .INTL系</td><td>祝日リストを別シートに用意</td></tr><tr><td>月末・月初</td><td>EOMONTH / EDATE / DATE</td><td>月末はEOMONTH、Nヶ月後はEDATE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">日付計算は「やりたいこと」を先に決めて、そこから関数を選ぶのがコツです。早見表とフローチャートをブックマークしておけば、迷うことはなくなりますよ。</p>



<p class="wp-block-paragraph">各関数の詳しい使い方は、個別の解説記事も用意しているので、シーンに合わせて読んでみてくださいね。</p>



<p class="wp-block-paragraph"><strong>関連記事</strong></p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-datedif-function/">スプレッドシートのDATEDIF関数の使い方｜年齢・期間を計算する</a></li><li><a href="https://mashukabu.com/spreadsheet-eomonth-function/">スプレッドシートのEOMONTH関数の使い方｜月末日を一発で求める</a></li><li><a href="https://mashukabu.com/spreadsheet-networkdays-function/">スプレッドシートのNETWORKDAYS関数の使い方｜営業日数を数える</a></li><li><a href="https://mashukabu.com/spreadsheet-workday-function/">スプレッドシートのWORKDAY関数の使い方｜N営業日後の日付を求める</a></li><li><a href="https://mashukabu.com/spreadsheet-edate-function/">スプレッドシートのEDATE関数の使い方｜Nヶ月後の同日を求める</a></li><li><a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算を完全攻略｜年齢・日数・営業日・年度を関数で自動化</a></li><li><a href="https://mashukabu.com/spreadsheet-cell-merge-center-alignment/">スプレッドシートのセル結合をやめて「中央揃え」にする方法｜結合が引き起こす3つのトラブルと代替策</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-date-calculation-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのYEARFRAC関数の使い方｜年単位の期間を小数で計算</title>
		<link>https://mashukabu.com/spreadsheet-yearfrac-function/</link>
					<comments>https://mashukabu.com/spreadsheet-yearfrac-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:28:43 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[YEARFRAC関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年数計算]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4721</guid>

					<description><![CDATA[スプレッドシートのYEARFRAC関数の使い方を基本から解説。2つの日付の間が何年かを小数で返す関数で、勤続年数や契約期間の計算に便利です。DATEDIF関数との違いや基準日数の設定、実務での活用例まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「入社してから何年何ヶ月か、ざっくり年数で出せないかな？」。勤続年数や契約期間を管理していると、こんな場面が出てきますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>を使えば「6年」のような整数は出せます。でも「6.46年」のように端数まで含めた正確な年数がほしい場面もあります。</p>



<p class="wp-block-paragraph">GoogleスプレッドシートのYEARFRAC関数なら、2つの日付の間隔を<strong>年単位の小数</strong>で一発計算できます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から、勤続年数や契約残期間の計算、DATEDIFとの使い分けまで、実務で使えるテクニックをまとめて紹介します。</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">YEARFRAC関数とは？スプレッドシートで年単位の期間を計算する関数</a></li><li><a href="#toc2" tabindex="0">YEARFRAC関数の書き方｜構文と引数</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">基準（日数計算方法）の種類</a></li></ol></li><li><a href="#toc6" tabindex="0">YEARFRAC関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">セル参照で年数を求める</a></li><li><a href="#toc8" tabindex="0">基準を指定して実日数ベースで計算する</a></li><li><a href="#toc9" tabindex="0">DATE関数と組み合わせる</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使えるYEARFRAC関数の活用例</a><ol><li><a href="#toc11" tabindex="0">勤続年数を小数で自動計算する</a></li><li><a href="#toc12" tabindex="0">契約の残り期間を年単位で求める</a></li><li><a href="#toc13" tabindex="0">年齢に端数を含めて計算する</a></li></ol></li><li><a href="#toc14" tabindex="0">YEARFRAC関数のエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#VALUE!エラー（日付が不正な場合）</a></li><li><a href="#toc16" tabindex="0">#NUM!エラー（基準の値が不正な場合）</a></li><li><a href="#toc17" tabindex="0">IFERRORで安全にエラーを回避する</a></li></ol></li><li><a href="#toc18" tabindex="0">DATEDIF関数との違い・使い分け</a><ol><li><a href="#toc19" tabindex="0">使い分けの判断基準</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">YEARFRAC関数とは？スプレッドシートで年単位の期間を計算する関数</span></h2>



<p class="wp-block-paragraph">YEARFRAC関数（読み方: イヤーフラック関数）は、<strong>2つの日付の間隔が年単位で何年にあたるかを小数で返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「year（年）」と「fraction（端数・割合）」を組み合わせた造語です。</p>



<p class="wp-block-paragraph">たとえば「2020/4/1」から「2026/9/15」までの期間をYEARFRAC関数で求めると「6.4583&#8230;」のような値が返ります。つまり約6年5ヶ月半ということです。</p>



<p class="wp-block-paragraph">DATEDIF関数の「Y」単位だと「6」（整数）しか返りませんが、YEARFRAC関数なら端数まで含めた正確な年数がわかります。年齢のような「満何歳」ではなく、勤続年数や契約期間のように「端数も含めた年数」がほしいときに重宝しますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>YEARFRAC関数はGoogleスプレッドシートとExcel（全バージョン）の両方で使えます。構文も同じなので、ファイルを変換しても数式はそのまま動きますよ。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=YEARFRAC(開始日, 終了日, [基準])</code></pre>



<p class="wp-block-paragraph">カッコの中に「開始日」「終了日」の2つを入れます。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>期間の開始となる日付</td></tr><tr><td>終了日</td><td>必須</td><td>期間の終了となる日付</td></tr><tr><td>基準</td><td>任意</td><td>日数の計算方法を指定する数値（0〜4、省略時は0）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">開始日が終了日より後でもエラーにはなりません。ただし結果がマイナスになるので、通常は開始日を終了日より前に指定してください。</p>



<h3 class="wp-block-heading"><span id="toc5">基準（日数計算方法）の種類</span></h3>



<p class="wp-block-paragraph">第3引数の「基準」は、1年の日数をどう計算するかを指定します。金融計算で使われるオプションですが、<strong>一般的な実務では省略して問題ありません</strong>。</p>



<figure class="wp-block-table"><table><thead><tr><th>基準</th><th>計算方法</th><th>1年の日数</th></tr></thead><tbody><tr><td>0（省略時）</td><td>米国方式（NASD 30/360）</td><td>各月30日 / 年360日</td></tr><tr><td>1</td><td>実日数 / 実日数</td><td>うるう年は366日、それ以外は365日</td></tr><tr><td>2</td><td>実日数 / 360日</td><td>年360日として計算</td></tr><tr><td>3</td><td>実日数 / 365日</td><td>年365日として計算（うるう年も同じ）</td></tr><tr><td>4</td><td>ヨーロッパ方式（30/360）</td><td>各月30日 / 年360日</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>勤続年数や契約期間など「正確な暦日ベース」で計算したい場合は、基準を「1」に指定するのがおすすめです。省略時（0）は各月を30日とみなす金融向けの計算方法なので、実日数とわずかにズレることがあります。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">セル参照で年数を求める</span></h3>



<p class="wp-block-paragraph">A2に開始日「2020/4/1」、B2に終了日「2026/9/15」が入っているとします。</p>



<pre class="wp-block-code"><code>=YEARFRAC(A2, B2)</code></pre>



<p class="wp-block-paragraph">結果は「6.458333&#8230;」です。約6.46年、つまり6年5ヶ月半の期間があるとわかります。</p>



<p class="wp-block-paragraph">引数はセル参照で指定するのが基本です。日付データを変更するだけで結果が自動更新されますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">基準を指定して実日数ベースで計算する</span></h3>



<p class="wp-block-paragraph">デフォルト（基準0）は各月を30日とみなす計算です。実際の暦日に基づいて正確に計算したい場合は、基準に「1」を指定します。</p>



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



<p class="wp-block-paragraph">結果は「6.460&#8230;」です。基準0のときと値がわずかに異なります。これは、基準0が「すべての月を30日」と仮定するのに対し、基準1は実際の日数（31日の月は31日、うるう年は366日）で計算するためです。</p>



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



<p class="wp-block-paragraph">年・月・日がバラバラのセルに入っている場合は、<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>（年・月・日から日付を作る関数）を組み合わせます。</p>



<pre class="wp-block-code"><code>=YEARFRAC(DATE(2020,4,1), DATE(2026,9,15), 1)</code></pre>



<p class="wp-block-paragraph">DATE関数で日付データを作ってからYEARFRACに渡す形です。</p>



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



<h3 class="wp-block-heading"><span id="toc11">勤続年数を小数で自動計算する</span></h3>



<p class="wp-block-paragraph">人事名簿で入社日がA2に入っているとします。勤続年数を小数で表示してみましょう。</p>



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>は今日の日付を返す関数です。入社日と今日の差を年単位で求めています。</p>



<p class="wp-block-paragraph">A2が「2020/4/1」で今日が「2026/3/21」なら、結果は「5.971&#8230;」です。約5年11ヶ月半ということですね。</p>



<p class="wp-block-paragraph">整数部分だけ取り出したい場合は、INT関数で囲みます。</p>



<pre class="wp-block-code"><code>=INT(YEARFRAC(A2, TODAY(), 1))</code></pre>



<p class="wp-block-paragraph">結果は「5」です。端数を切り捨てた「満何年」が返ります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「X年Yヶ月」形式で表示したいなら、<a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>のほうが向いています。YEARFRACは「6.46年」のような小数値、DATEDIFは「6年5ヶ月」のような整数値と、用途に応じて使い分けてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">契約の残り期間を年単位で求める</span></h3>



<p class="wp-block-paragraph">契約終了日がB2に入っているとして、残り期間を年単位で計算してみましょう。</p>



<pre class="wp-block-code"><code>=YEARFRAC(TODAY(), B2, 1)</code></pre>



<p class="wp-block-paragraph">B2が「2028/3/31」なら、結果は「2.027&#8230;」です。残り約2.0年とわかります。</p>



<p class="wp-block-paragraph">「残り1年未満になったら更新手続きを始める」といった判定にも使えます。</p>



<pre class="wp-block-code"><code>=IF(YEARFRAC(TODAY(), B2, 1) &lt; 1, &quot;更新手続き必要&quot;, &quot;&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc13">年齢に端数を含めて計算する</span></h3>



<p class="wp-block-paragraph">保険の年齢計算のように、端数を含めた年齢が必要な場面もあります。</p>



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



<p class="wp-block-paragraph">A2が「1990/5/20」で今日が「2026/3/21」なら、結果は「35.838&#8230;」です。35歳と約10ヶ月ということですね。</p>



<p class="wp-block-paragraph">満年齢（整数）だけでよければDATEDIF関数の「Y」単位を使いましょう。端数まで必要なケースでYEARFRAC関数が活躍します。</p>



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



<h3 class="wp-block-heading"><span id="toc15">#VALUE!エラー（日付が不正な場合）</span></h3>



<p class="wp-block-paragraph">YEARFRAC関数に渡した値が正しい日付データになっていないと、#VALUE!エラーが発生します。</p>



<p class="wp-block-paragraph">よくある原因は次の3つです。</p>



<ul class="wp-block-list"><li>セルに日付が「文字列」として入力されている</li><li>全角数字が混じっている（例: 「２０２０/4/1」）</li><li>存在しない日付を指定している（例: 「2020/2/30」）</li></ul>



<p class="wp-block-paragraph">対処法は、セルの表示形式を「日付」に変更するか、<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>で日付データを作り直すことです。</p>



<pre class="wp-block-code"><code>=YEARFRAC(DATE(2020,4,1), DATE(2026,9,15), 1)</code></pre>



<p class="wp-block-paragraph">DATE関数を経由すれば、確実に正しい日付データとして処理されます。</p>



<h3 class="wp-block-heading"><span id="toc16">#NUM!エラー（基準の値が不正な場合）</span></h3>



<p class="wp-block-paragraph">第3引数の「基準」に0〜4以外の値を指定すると、#NUM!エラーが発生します。</p>



<pre class="wp-block-code"><code>=YEARFRAC(A2, B2, 5)   → #NUM!</code></pre>



<p class="wp-block-paragraph">基準は0・1・2・3・4の5種類だけです。それ以外の数値を指定していないか確認してください。</p>



<h3 class="wp-block-heading"><span id="toc17">IFERRORで安全にエラーを回避する</span></h3>



<p class="wp-block-paragraph">データに不備がある行でもエラー表示を防ぎたい場合は、IFERROR関数（エラーのとき代替値を返す関数）で囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(YEARFRAC(A2, TODAY(), 1), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A2が空欄だったり不正な日付だったりしても、エラーの代わりに空白が表示されます。名簿のように大量の行がある場面ではIFERROR関数との組み合わせがおすすめです。</p>



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



<p class="wp-block-paragraph">YEARFRAC関数と<a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a>は、どちらも2つの日付の間隔を求める関数です。大きな違いは「戻り値の形式」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>YEARFRAC関数</th><th>DATEDIF関数</th></tr></thead><tbody><tr><td>戻り値</td><td>年数の小数（例: 6.46）</td><td>整数（例: 6）</td></tr><tr><td>端数の扱い</td><td>小数で含まれる</td><td>切り捨てられる</td></tr><tr><td>単位の指定</td><td>年のみ（自動）</td><td>Y/M/D/YM/MD/YDの6種類</td></tr><tr><td>基準の指定</td><td>あり（0〜4）</td><td>なし</td></tr><tr><td>引数の順序</td><td>開始日, 終了日</td><td>開始日, 終了日</td></tr><tr><td>逆順のとき</td><td>マイナスの値を返す</td><td>#NUM!エラー</td></tr><tr><td>主な用途</td><td>期間の小数表示、金融計算</td><td>年齢計算、X年Yヶ月表示</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">使い分けの判断基準</span></h3>



<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>勤続年数を「6.5年」のように小数で表示</td><td>YEARFRAC</td><td><code>=YEARFRAC(A2, TODAY(), 1)</code></td></tr><tr><td>勤続年数を「6年5ヶ月」のように表示</td><td>DATEDIF</td><td>Y + YMの組み合わせ</td></tr><tr><td>年齢を満年齢（整数）で求める</td><td>DATEDIF</td><td><code>=DATEDIF(A2, TODAY(), "Y")</code></td></tr><tr><td>契約残期間が1年未満かどうか判定する</td><td>YEARFRAC</td><td><code>=YEARFRAC(TODAY(), B2, 1) < 1</code></td></tr><tr><td>2つの日付の日数だけ知りたい</td><td><a href="https://mashukabu.com/spreadsheet-days-function/">DAYS関数</a></td><td><code>=DAYS(B2, A2)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">小数の年数がほしいならYEARFRAC、整数の年・月・日で分解したいならDATEDIF、日数だけならDAYSと覚えておけば迷いません。</p>



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



<p class="wp-block-paragraph">YEARFRAC関数は、2つの日付の間隔を年単位の小数で返す関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=YEARFRAC(開始日, 終了日, [基準])</code> の2〜3引数</li><li>戻り値は小数（例: 6.46年）。端数まで含めた正確な年数がわかる</li><li>基準は省略可。実日数ベースで計算したいなら「1」を指定</li><li>勤続年数は <code>=YEARFRAC(入社日, TODAY(), 1)</code> で自動計算できる</li><li>整数の年数がほしいならINT関数で囲む</li><li>「X年Yヶ月」形式で表示したい場合はDATEDIF関数を使う</li></ul>



<figure class="wp-block-table"><table><thead><tr><th>場面</th><th>使う関数</th></tr></thead><tbody><tr><td>年数を小数で知りたい</td><td>YEARFRAC関数</td></tr><tr><td>年・月・日の整数で知りたい</td><td><a href="https://mashukabu.com/spreadsheet-datedif-function/">DATEDIF関数</a></td></tr><tr><td>日数だけ知りたい</td><td><a href="https://mashukabu.com/spreadsheet-days-function/">DAYS関数</a></td></tr><tr><td>今日の日付を基準にしたい</td><td><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>と組み合わせ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">まずは <code>=YEARFRAC(A2, TODAY(), 1)</code> で勤続年数の計算から試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-yearfrac-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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">スプレッドシートの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>スプレッドシートのDATEDIF関数の使い方｜日付の差を年月日で計算</title>
		<link>https://mashukabu.com/spreadsheet-datedif-function/</link>
					<comments>https://mashukabu.com/spreadsheet-datedif-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:49:57 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DATE関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4327</guid>

					<description><![CDATA[スプレッドシートのDATEDIF関数の使い方を基本から解説。6つの単位（Y/M/D/YM/MD/YD）の意味と実例、生年月日から年齢を自動計算する方法、勤続年数のX年Yヶ月表示、#NUM!エラーの対処法まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「入社日から今日まで何年何ヶ月か、パッと出せないかな？」。社員名簿や契約管理をしていると、こんな場面が出てきますよね。</p>



<p class="wp-block-paragraph">日付の引き算で日数は出せますが、「3年6ヶ月」のような年月表示にするのは意外と面倒です。</p>



<p class="wp-block-paragraph">GoogleスプレッドシートのDATEDIF関数を使えば、2つの日付の差を年・月・日の好きな単位で一発計算できます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から、年齢の自動計算や勤続年数の「X年Yヶ月」表示まで、実務で使えるテクニックをまとめて紹介します。</p>




  <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></li><li><a href="#toc2" tabindex="0">DATEDIF関数の書き方｜構文と引数</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">6つの単位の意味と使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">DATEDIF関数の使い方｜6つの単位を実例で確認</a></li><li><a href="#toc7" tabindex="0">実務で使えるDATEDIF活用例</a><ol><li><a href="#toc8" tabindex="0">生年月日から年齢を自動計算する</a></li><li><a href="#toc9" tabindex="0">勤続年数を「X年Yヶ月」形式で表示する</a></li><li><a href="#toc10" tabindex="0">契約の残り期間を計算する</a></li></ol></li><li><a href="#toc11" tabindex="0">DATEDIF関数のエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">#NUM!エラー（開始日が終了日より後の場合）</a></li><li><a href="#toc13" tabindex="0">IFERRORで安全にエラーを回避する</a></li><li><a href="#toc14" tabindex="0">#VALUE!エラー（日付が文字列の場合）</a></li></ol></li><li><a href="#toc15" tabindex="0">ExcelのDATEDIF関数との互換性</a></li><li><a href="#toc16" tabindex="0">YEAR関数を使った代替手段との比較</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">DATEDIF関数とは？スプレッドシートで日付の差を求める関数</span></h2>



<p class="wp-block-paragraph">DATEDIF関数（読み方: デイトディフ関数）は、<strong>2つの日付の間隔を年・月・日の単位で計算する関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「date（日付）」と「difference（差）」を組み合わせた造語です。</p>



<p class="wp-block-paragraph">通常の日付の引き算（=B1-A1）では結果が「日数」しか返りません。「1,278日」と出されても、それが何年何ヶ月なのかすぐにはわかりませんよね。</p>



<p class="wp-block-paragraph">DATEDIF関数なら、第3引数の「単位」を切り替えるだけで年数・月数・日数を自由に取り出せます。年齢計算や勤続年数の算出に欠かせない関数ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>DATEDIF関数はGoogleスプレッドシートでは公式にサポートされています。Excelでも使えますが、Excelでは公式ドキュメントに記載されていない「非公式関数」の扱いです。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=DATEDIF(開始日, 終了日, 単位)</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>期間の開始となる日付</td></tr><tr><td>終了日</td><td>必須</td><td>期間の終了となる日付</td></tr><tr><td>単位</td><td>必須</td><td>結果の単位を指定する文字列（&#8221;Y&#8221;、&#8221;M&#8221;、&#8221;D&#8221;など）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">開始日は終了日より前の日付を指定してください。開始日が終了日より後になると#NUM!エラーが発生します。</p>



<h3 class="wp-block-heading"><span id="toc5">6つの単位の意味と使い分け</span></h3>



<p class="wp-block-paragraph">DATEDIF関数の最大のポイントは、第3引数の「単位」です。6種類あり、それぞれ返す値が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>返す値</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>年数</td><td>完了した年の数（端数切り捨て）</td></tr><tr><td>&#8220;M&#8221;</td><td>月数</td><td>完了した月の数（端数切り捨て）</td></tr><tr><td>&#8220;D&#8221;</td><td>日数</td><td>2つの日付の間の日数</td></tr><tr><td>&#8220;YM&#8221;</td><td>年を除いた月数</td><td>年の差を除いた残りの月数（0〜11）</td></tr><tr><td>&#8220;MD&#8221;</td><td>月を除いた日数</td><td>月の差を除いた残りの日数（0〜30）</td></tr><tr><td>&#8220;YD&#8221;</td><td>年を除いた日数</td><td>年の差を除いた残りの日数（0〜365）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上の3つ（Y/M/D）が「トータルの差」、下の3つ（YM/MD/YD）が「端数部分の差」です。この違いを押さえておくと迷わずに使えますよ。</p>



<h2 class="wp-block-heading"><span id="toc6">DATEDIF関数の使い方｜6つの単位を実例で確認</span></h2>



<p class="wp-block-paragraph">同じ日付ペアで6つの単位すべてを試してみましょう。開始日を「2020/4/1」、終了日を「2026/9/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>=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;Y&quot;)   → 6
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;M&quot;)   → 77
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;D&quot;)   → 2358
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;YM&quot;)  → 5
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;MD&quot;)  → 14
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;YD&quot;)  → 167</code></pre>



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



<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>&#8220;Y&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","Y")</code></td><td>6</td><td>6年（7年目に届いていない）</td></tr><tr><td>&#8220;M&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","M")</code></td><td>77</td><td>トータル77ヶ月</td></tr><tr><td>&#8220;D&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","D")</code></td><td>2358</td><td>トータル2,358日</td></tr><tr><td>&#8220;YM&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","YM")</code></td><td>5</td><td>6年と<strong>5ヶ月</strong></td></tr><tr><td>&#8220;MD&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","MD")</code></td><td>14</td><td>5ヶ月と<strong>14日</strong></td></tr><tr><td>&#8220;YD&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","YD")</code></td><td>167</td><td>6年と<strong>167日</strong></td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">&#8220;YM&#8221;の「5」と&#8221;MD&#8221;の「14」を合わせると「6年5ヶ月14日」です。「X年Yヶ月Z日」の表示を作るときは、Y・YM・MDの3つを組み合わせて使います。</p>



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



<h3 class="wp-block-heading"><span id="toc8">生年月日から年齢を自動計算する</span></h3>



<p class="wp-block-paragraph">人事名簿でよく使うパターンです。A2に生年月日が入っているとします。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_formula_datedif-age.png" alt="04 formula datedif age" /></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>は今日の日付を返す関数です。生年月日と今日の差を「年」の単位で求めるので、現在の満年齢が返ります。</p>



<p class="wp-block-paragraph">たとえばA2が「1990/5/20」で今日が「2026/3/19」なら、結果は「35」です。5月20日を過ぎたら自動で「36」に変わりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>社員が100人いても、数式を下にコピーするだけで全員の年齢が一括計算できます。手計算で年齢を更新する手間がなくなりますね。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc9">勤続年数を「X年Yヶ月」形式で表示する</span></h3>



<p class="wp-block-paragraph">入社日がB2に入っているとして、勤続年数を「X年Yヶ月」の文字列で表示してみましょう。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/06_formula_datedif-tenure.png" alt="06 formula datedif tenure" /></figure>



<p class="wp-block-paragraph">「Y」で年数を、「YM」で年を除いた月数を取り出し、文字列結合演算子（&#038;）でつなげています。</p>



<p class="wp-block-paragraph">B2が「2020/4/1」で今日が「2026/3/19」なら、結果は「5年11ヶ月」です。</p>



<p class="wp-block-paragraph">さらに日数まで表示したい場合は、「MD」を追加します。</p>



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



<p class="wp-block-paragraph">結果は「5年11ヶ月18日」のように表示されます。</p>



<h3 class="wp-block-heading"><span id="toc10">契約の残り期間を計算する</span></h3>



<p class="wp-block-paragraph">契約終了日がC2に入っているとして、今日からの残り期間を求めてみましょう。</p>



<pre class="wp-block-code"><code>=DATEDIF(TODAY(), C2, &quot;M&quot;) &amp; &quot;ヶ月&quot; &amp; DATEDIF(TODAY(), C2, &quot;MD&quot;) &amp; &quot;日&quot;</code></pre>



<p class="wp-block-paragraph">この場合はTODAY()を開始日、契約終了日を終了日にしています。C2が「2027/3/31」なら「12ヶ月12日」のように表示されます。</p>



<p class="wp-block-paragraph">契約管理やリース期間の算出に便利ですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc12">#NUM!エラー（開始日が終了日より後の場合）</span></h3>



<p class="wp-block-paragraph">DATEDIF関数でもっとも多いエラーです。開始日が終了日より後の日付になっていると発生します。</p>



<pre class="wp-block-code"><code>=DATEDIF(&quot;2026/9/15&quot;, &quot;2020/4/1&quot;, &quot;Y&quot;)   → #NUM!</code></pre>



<p class="wp-block-paragraph">対処法はシンプルです。引数の順番を確認して、開始日を終了日より前に指定してください。</p>



<h3 class="wp-block-heading"><span id="toc13">IFERRORで安全にエラーを回避する</span></h3>



<p class="wp-block-paragraph">データに不備がある行でもエラー表示を防ぎたい場合は、IFERROR関数（エラーのとき代替値を返す関数）で囲みます。</p>



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



<p class="wp-block-paragraph">A2が空欄だったり不正な日付だったりしても、エラーの代わりに空白が表示されます。名簿のように大量の行がある場面では、IFERROR関数との組み合わせがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc14">#VALUE!エラー（日付が文字列の場合）</span></h3>



<p class="wp-block-paragraph">日付のセルが文字列として入力されていると#VALUE!エラーになることがあります。セルの表示形式を「日付」に変更するか、<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>で日付データを作り直してください。</p>



<h2 class="wp-block-heading"><span id="toc15">ExcelのDATEDIF関数との互換性</span></h2>



<p class="wp-block-paragraph">DATEDIF関数はGoogleスプレッドシートとExcelの両方で使えます。ただし扱いに違いがあるので注意してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel</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>6つの単位</td><td>すべて使える</td><td>すべて使える</td></tr><tr><td>&#8220;MD&#8221;単位の精度</td><td>一部ケースで不正確な結果の報告あり</td><td>同様の問題あり</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excelでは入力候補に表示されないため「存在しない関数」と思われがちですが、実際にはExcel 2000以降のすべてのバージョンで動作します。</p>



<p class="wp-block-paragraph">スプレッドシートからExcelにファイルを変換しても、DATEDIF関数の数式はそのまま動作します。チーム内でファイル形式が混在していても安心ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>&#8220;MD&#8221;単位は、一部の日付の組み合わせで不正確な結果を返すことがあります。厳密な日数計算が必要な場合は、DAY関数を使った手動計算を検討してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">YEAR関数を使った代替手段との比較</span></h2>



<p class="wp-block-paragraph">DATEDIF関数を使わなくても、<a href="https://mashukabu.com/spreadsheet-year-function/">YEAR関数</a>やMONTH関数の引き算で年齢を求める方法もあります。</p>



<pre class="wp-block-code"><code>=YEAR(TODAY()) - YEAR(A2)</code></pre>



<p class="wp-block-paragraph">この数式でも年の差は出ますが、誕生日を迎えたかどうかを考慮しません。たとえば「1990/12/1」生まれの人は、2026年3月の時点ではまだ35歳ですが、YEAR関数の引き算では「36」と出てしまいます。</p>



<p class="wp-block-paragraph">DATEDIF関数なら「完了した年数」を正確に返すので、満年齢の計算にはDATEDIF関数を使ってください。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式例</th><th>メリット</th><th>デメリット</th></tr></thead><tbody><tr><td>DATEDIF関数</td><td><code>=DATEDIF(A2,TODAY(),"Y")</code></td><td>満年齢が正確</td><td>関数名が長い</td></tr><tr><td>YEAR引き算</td><td><code>=YEAR(TODAY())-YEAR(A2)</code></td><td>シンプル</td><td>誕生日前でも1歳多く出る</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の差を年・月・日の単位で計算する関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=DATEDIF(開始日, 終了日, 単位)</code> の3引数</li><li>6つの単位のうち、Y/M/Dが「トータルの差」、YM/MD/YDが「端数部分の差」</li><li>年齢計算は <code>=DATEDIF(生年月日, TODAY(), "Y")</code> が定番</li><li>勤続年数は「Y」と「YM」を&#038;でつないで「X年Yヶ月」表示</li><li>開始日 > 終了日で#NUM!エラーが出るので、IFERRORで囲むと安全</li><li>Excelでも同じ構文で使える（非公式だが全バージョンで動作）</li></ul>



<p class="wp-block-paragraph">まずは <code>=DATEDIF(A2, TODAY(), "Y")</code> で年齢計算から試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-datedif-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-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関数とは？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の日付計算を完全攻略｜年齢・日数・営業日・年度を関数で自動化</title>
		<link>https://mashukabu.com/excel-date-calculation-guide/</link>
					<comments>https://mashukabu.com/excel-date-calculation-guide/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:36:42 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF]]></category>
		<category><![CDATA[EOMONTH]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[NETWORKDAYS]]></category>
		<category><![CDATA[営業日]]></category>
		<category><![CDATA[年度]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4038</guid>

					<description><![CDATA[Excelの日付計算で使う関数を実務シーン別に整理。年齢計算（DATEDIF/YEARFRAC）、日数計算（引き算/DAYS/NETWORKDAYS）、月末計算（EOMONTH）、年度判定（YEAR+IF）の使い分けを早見表とフローチャートで解説します。実務シナリオ・エラー対処・FAQ付き。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「社員の年齢を自動で計算したい」「プロジェクトの残り営業日を数えたい」。Excelで日付まわりの計算をしようとすると、どの関数を使えばいいか迷いますよね。</p>



<p class="wp-block-paragraph">日付計算に使える関数はたくさんあります。しかし場面ごとに最適な関数は異なります。間違った関数を選ぶと、計算結果がずれたり余計な手間が増えたりすることも。</p>



<p class="wp-block-paragraph">この記事では、よくある4つの実務シーン別にベストな関数を早見表とフローチャートで整理しました。年齢・日数・営業日・年度、それぞれの計算方法と実務シナリオをまとめてマスターしていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Excel日付計算の関数早見表【結論から】</a><ol><li><a href="#toc2" tabindex="0">選択フローチャート</a></li></ol></li><li><a href="#toc3" tabindex="0">年齢を自動計算する関数の使い分け</a><ol><li><a href="#toc4" tabindex="0">DATEDIF関数で年齢を求める基本</a></li><li><a href="#toc5" tabindex="0">DATEDIFの非公式サポート問題と代替策</a></li><li><a href="#toc6" tabindex="0">YEARFRAC関数との違い</a></li></ol></li><li><a href="#toc7" tabindex="0">日数を計算する関数の使い分け</a><ol><li><a href="#toc8" tabindex="0">日付の引き算でシンプルに日数を求める</a></li><li><a href="#toc9" tabindex="0">DAYS関数で日数を数える</a></li><li><a href="#toc10" tabindex="0">NETWORKDAYS関数で営業日を数える</a></li><li><a href="#toc11" tabindex="0">NETWORKDAYS.INTL関数で休日パターンをカスタマイズ</a></li></ol></li><li><a href="#toc12" tabindex="0">月末日を求めるEOMONTH関数の日付計算</a><ol><li><a href="#toc13" tabindex="0">EOMONTH関数の基本</a></li><li><a href="#toc14" tabindex="0">翌月末・翌々月末の支払期日を計算する</a></li><li><a href="#toc15" tabindex="0">EDATE関数でN ヶ月後の同日を求める</a></li></ol></li><li><a href="#toc16" tabindex="0">年度を判定する関数テクニック</a><ol><li><a href="#toc17" tabindex="0">YEAR関数+IF関数で年度を求める</a></li><li><a href="#toc18" tabindex="0">4月始まりの年度またぎ処理</a></li></ol></li><li><a href="#toc19" tabindex="0">実務で使う日付計算シナリオ集</a><ol><li><a href="#toc20" tabindex="0">シナリオ1: 社員の年齢と勤続年数を一括計算</a></li><li><a href="#toc21" tabindex="0">シナリオ2: 契約終了までの残り営業日を数える</a></li><li><a href="#toc22" tabindex="0">シナリオ3: 請求書の支払期日を自動入力</a></li><li><a href="#toc23" tabindex="0">シナリオ4: プロジェクトの所要月数を計算</a></li><li><a href="#toc24" tabindex="0">シナリオ5: 年度別の集計用キーを作る</a></li><li><a href="#toc25" tabindex="0">シナリオ早見表</a></li></ol></li><li><a href="#toc26" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc27" tabindex="0">よくある質問</a><ol><li><a href="#toc28" tabindex="0">Q1. DATEDIF関数を使ってもいいのですか？</a></li><li><a href="#toc29" tabindex="0">Q2. 「今日時点で何日後か」を自動で更新するには？</a></li><li><a href="#toc30" tabindex="0">Q3. 土日祝日を除いた日数を数えるには？</a></li><li><a href="#toc31" tabindex="0">Q4. 月末日と翌月の同日、どちらを使うべき？</a></li><li><a href="#toc32" tabindex="0">Q5. 年度の開始月が4月以外でも対応できますか？</a></li><li><a href="#toc33" tabindex="0">Q6. 日付の引き算と DAYS 関数、どちらを使うべき？</a></li><li><a href="#toc34" tabindex="0">Q7. 日付計算の結果が1日ずれることがあります</a></li></ol></li><li><a href="#toc35" tabindex="0">Excel日付計算の関数一覧と比較表</a></li><li><a href="#toc36" tabindex="0">まとめ</a><ol><li><a href="#toc37" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excel日付計算の関数早見表【結論から】</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>年齢を求める</td><td><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></td><td><code>=DATEDIF(A1,TODAY(),"Y")</code></td></tr><tr><td>2つの日付の日数差</td><td>日付の引き算</td><td><code>=B1-A1</code></td></tr><tr><td>営業日を数える</td><td><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数</a></td><td><code>=NETWORKDAYS(A1,B1)</code></td></tr><tr><td>月末日を求める</td><td><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a></td><td><code>=EOMONTH(A1,0)</code></td></tr><tr><td>年度を判定する</td><td><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数</a>+<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a></td><td><code>=IF(MONTH(A1)>=4,YEAR(A1),YEAR(A1)-1)</code></td></tr><tr><td>期間の年数・月数</td><td><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></td><td><code>=DATEDIF(A1,B1,"M")</code></td></tr><tr><td>休日パターンをカスタム</td><td><a href="https://mashukabu.com/excel-function-howto-use-networkdays_intl/">NETWORKDAYS.INTL関数</a></td><td><code>=NETWORKDAYS.INTL(A1,B1,11)</code></td></tr><tr><td>N ヶ月後の同日</td><td><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a></td><td><code>=EDATE(A1,3)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらこの表を見れば、使うべき関数がすぐにわかります。</p>



<h3 class="wp-block-heading"><span id="toc2">選択フローチャート</span></h3>



<p class="wp-block-paragraph">どの関数を使うか迷ったら、次の3ステップで判断してください。</p>



<ol class="wp-block-list"><li><strong>何を計算したい？</strong></li></ol>



<ul class="wp-block-list"><li>期間の長さ（年・月・日） → 手順2へ</li><li>特定の日付（月末・N ヶ月後など） → 手順3へ</li><li>年度・四半期・上半期の判定 → <strong>YEAR + IF + MONTH</strong></li></ul>



<ol class="wp-block-list"><li><strong>期間の単位は？</strong></li></ol>



<ul class="wp-block-list"><li>年齢などの満年数 → <strong>DATEDIF（&#8221;Y&#8221;）</strong></li><li>月数 → <strong>DATEDIF（&#8221;M&#8221;）</strong> または DATEDIFを避けるなら <strong>YEAR/MONTH 引き算</strong></li><li>暦の日数 → <strong>日付の引き算</strong> または <strong>DAYS</strong></li><li>営業日数 → <strong>NETWORKDAYS</strong> / <strong>NETWORKDAYS.INTL</strong></li></ul>



<ol class="wp-block-list"><li><strong>求めたい日付は？</strong></li></ol>



<ul class="wp-block-list"><li>月末日 → <strong>EOMONTH</strong></li><li>N ヶ月後の同日 → <strong>EDATE</strong></li><li>N 営業日後 → <strong>WORKDAY</strong> / <strong>WORKDAY.INTL</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>迷ったらまずDATEDIFと引き算</strong></p><p>「期間が知りたい」場面の8割はDATEDIFか引き算で解決します。「特定の日付が知りたい」場面の大半はEOMONTHかEDATEで足ります。この4つを押さえれば、日付計算で困ることは大幅に減りますよ。</p></blockquote>



<p class="wp-block-paragraph">ここからは各シーンの詳しい使い方を順番に解説していきます。</p>



<h2 class="wp-block-heading"><span id="toc3">年齢を自動計算する関数の使い分け</span></h2>



<p class="wp-block-paragraph">人事・総務の業務でよく出てくるのが年齢計算です。生年月日から「今日時点で何歳か」を自動で求める方法を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">DATEDIF関数で年齢を求める基本</span></h3>



<p class="wp-block-paragraph">年齢計算でもっともシンプルなのが<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>です。</p>



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



<p class="wp-block-paragraph">第1引数に生年月日のセル、第2引数に<a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>、第3引数に <code>"Y"</code> を指定します。これで「満年齢」が数値で返ります。</p>



<p class="wp-block-paragraph">たとえばセルA2に <code>1990/4/15</code> と入力されている場合、数式は次のとおりです。</p>



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



<p class="wp-block-paragraph">2026年3月17日時点では <code>35</code> と表示されます。</p>



<p class="wp-block-paragraph">DATEDIF関数の第3引数（単位）を変えると、年数以外の期間も求められます。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>用途の例</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>期間の年数</td><td>年齢計算</td></tr><tr><td>&#8220;M&#8221;</td><td>期間の月数</td><td>在籍月数の計算</td></tr><tr><td>&#8220;D&#8221;</td><td>期間の日数</td><td>経過日数の計算</td></tr><tr><td>&#8220;YM&#8221;</td><td>年数を無視した月数</td><td>「○年○ヶ月」の月部分</td></tr><tr><td>&#8220;MD&#8221;</td><td>年数と月数を無視した日数</td><td>「○年○ヶ月○日」の日部分</td></tr><tr><td>&#8220;YD&#8221;</td><td>年数を無視した日数</td><td>誕生日まで日数の計算</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「○年○ヶ月」と表示したい場合は、次のように組み合わせます。</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>



<h3 class="wp-block-heading"><span id="toc5">DATEDIFの非公式サポート問題と代替策</span></h3>



<p class="wp-block-paragraph">DATEDIF関数には知っておくべき注意点があります。この関数はExcelの関数一覧やオートコンプリートに表示されません。</p>



<p class="wp-block-paragraph">Microsoftの公式ドキュメントでも「既知の問題がある」と記載されています（<a href="https://support.microsoft.com/ja-jp/office/datedif-%E9%96%A2%E6%95%B0-25dba1a4-2812-480b-84dd-8b32a451b35c">出典: Microsoft公式</a>）。もともとLotus 1-2-3との互換性のために残されている関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DATEDIFの単位ごとの注意点</strong></p><p><code>"Y"</code> 単位（年齢計算）は問題なく動作します。注意が必要なのは <code>"MD"</code> 単位で、まれに不正確な結果を返すことがあります。</p></blockquote>



<p class="wp-block-paragraph">年齢計算だけなら安心してDATEDIFを使ってOKです。ただし「念のためDATEDIFを避けたい」という方向けに代替策を紹介します。</p>



<p class="wp-block-paragraph"><strong>代替策1: YEAR関数とIF関数を組み合わせる</strong></p>



<pre class="wp-block-code"><code>=YEAR(TODAY())-YEAR(A2)-IF(DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))&gt;TODAY(),1,0)</code></pre>



<p class="wp-block-paragraph">ちょっと長いですが、やっていることはシンプルです。「今年の誕生日がまだ来ていなければ1を引く」という仕組みです。</p>



<p class="wp-block-paragraph"><strong>代替策2: YEARFRAC関数+INT関数</strong></p>



<pre class="wp-block-code"><code>=INT(YEARFRAC(A2,TODAY(),1))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-yearfrac/">YEARFRAC関数</a>は「期間が1年に占める割合」を返します。これをINT関数で整数に切り捨てれば年齢になります。第3引数の <code>1</code> は「実日数ベース」の意味です。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式の長さ</th><th>精度</th><th>おすすめ度</th></tr></thead><tbody><tr><td>DATEDIF</td><td>短い</td><td>高い（&#8221;Y&#8221;単位）</td><td>最もおすすめ</td></tr><tr><td>YEAR+IF</td><td>長い</td><td>高い</td><td>DATEDIFを避けたい場合</td></tr><tr><td>YEARFRAC+INT</td><td>短い</td><td>やや低い（閏年で1日ずれる場合あり）</td><td>簡易計算向き</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">YEARFRAC関数との違い</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-yearfrac/">YEARFRAC関数</a>は「期間の年数」を小数で返す関数です。DATEDIF関数の <code>"Y"</code> は整数を返す点が異なります。</p>



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



<p class="wp-block-paragraph">上の数式は <code>35.92...</code> のような小数を返します。年齢の端数（勤続年数の精密計算など）が必要なときに便利です。</p>



<p class="wp-block-paragraph">一方、満年齢のように整数で欲しいときはDATEDIFのほうがシンプルです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>勤続年数の小数表記が便利な場面</strong></p><p>退職金計算で「勤続17.5年」のように小数で扱いたいときは、YEARFRACがそのまま使えます。第3引数（基準）は <code>1</code>（実日数）にしておくと、閏年もきちんと考慮してくれますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">日数を計算する関数の使い分け</span></h2>



<p class="wp-block-paragraph">「プロジェクトの残り日数」や「契約期間の日数」など、2つの日付の間の日数を数えたい場面を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc8">日付の引き算でシンプルに日数を求める</span></h3>



<p class="wp-block-paragraph">もっとも簡単な方法は、日付どうしの引き算です。</p>



<pre class="wp-block-code"><code>=B2-A2</code></pre>



<p class="wp-block-paragraph">Excelの日付は内部的にシリアル値（1900年1月1日を1とした連番）で管理されています。そのため引き算するだけで日数差が求まります。</p>



<p class="wp-block-paragraph">たとえばA2に <code>2026/4/1</code>、B2に <code>2026/9/30</code> と入力して引き算すると、<code>182</code> と表示されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>結果が日付で表示されてしまったら</strong></p><p>結果が <code>182</code> ではなく日付（<code>1900/7/1</code> など）で表示される場合は、セルの表示形式を「標準」に変更してください。引き算の元セルが「日付」書式だと、結果セルも自動で同じ書式になることがあります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">DAYS関数で日数を数える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a>は日数を求める専用の関数です。</p>



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



<p class="wp-block-paragraph">引き算と同じ結果が得られます。ただし引数の順序に注意してください。第1引数が「終了日」、第2引数が「開始日」です。引き算とは逆の順番になります。</p>



<pre class="wp-block-code"><code>=DAYS(B2, A2)</code></pre>



<p class="wp-block-paragraph">DAYS関数のメリットは、文字列の日付にも対応している点です。<code>=DAYS("2026/9/30", "2026/4/1")</code> のように直接文字列を指定しても正しく計算できます（<a href="https://support.microsoft.com/ja-jp/office/days-%E9%96%A2%E6%95%B0-57740535-d549-4395-8728-0f07bff0b9df">出典: Microsoft公式</a>）。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式</th><th>メリット</th></tr></thead><tbody><tr><td>引き算</td><td><code>=B2-A2</code></td><td>シンプル。計算が速い</td></tr><tr><td>DAYS関数</td><td><code>=DAYS(B2,A2)</code></td><td>文字列日付にも対応</td></tr><tr><td>DATEDIF(&#8220;D&#8221;)</td><td><code>=DATEDIF(A2,B2,"D")</code></td><td>月数・年数も同時に扱える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務ではシンプルな引き算で十分なケースがほとんどです。文字列の日付を扱う場面ではDAYS関数を使ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc10">NETWORKDAYS関数で営業日を数える</span></h3>



<p class="wp-block-paragraph">「土日・祝日を除いた営業日だけを数えたい」。こんなときに使うのが<a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数</a>です。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(開始日, 終了日, 祝日リスト)</code></pre>



<p class="wp-block-paragraph">第3引数の祝日リストは省略可能です。省略すると土日だけが休みとして計算されます。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(A2, B2)</code></pre>



<p class="wp-block-paragraph">祝日も除外したい場合は、祝日の日付を別のセル範囲に入力しておきます。たとえばD2:D15に祝日を入力した場合は次のとおりです。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(A2, B2, D2:D15)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>両端日を含む点に注意</strong></p><p>NETWORKDAYS関数は開始日と終了日の<strong>両方を含めて</strong>カウントします。「4月1日から4月3日」は3日（月・火・水）です。引き算の <code>B2-A2</code> は2日になる点が異なります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">NETWORKDAYS.INTL関数で休日パターンをカスタマイズ</span></h3>



<p class="wp-block-paragraph">「うちの会社は水曜と日曜が休み」のように、土日以外の休日パターンを設定したいケースもありますよね。そんなときは<a href="https://mashukabu.com/excel-function-howto-use-networkdays_intl/">NETWORKDAYS.INTL関数</a>を使います。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS.INTL(開始日, 終了日, 休日パターン, 祝日リスト)</code></pre>



<p class="wp-block-paragraph">第3引数の休日パターンは数値で指定します。よく使うパターンは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン番号</th><th>休日</th><th>使いどころ</th></tr></thead><tbody><tr><td>1（既定）</td><td>土曜・日曜</td><td>一般企業</td></tr><tr><td>2</td><td>日曜・月曜</td><td>月曜定休の店舗</td></tr><tr><td>3</td><td>月曜・火曜</td><td>火曜定休の店舗</td></tr><tr><td>7</td><td>金曜・土曜</td><td>イスラム圏の企業</td></tr><tr><td>11</td><td>日曜のみ</td><td>土曜出勤の工場・小売</td></tr><tr><td>12</td><td>月曜のみ</td><td>月曜のみ休業の施設</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば日曜のみ休みで営業日を数える場合はこうなります。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS.INTL(A2, B2, 11)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>7桁の文字列で曜日を細かく指定</strong></p><p>第3引数には <code>"0000011"</code> のような7桁の文字列も指定できます。月〜日の順で、休日は1・出勤は0です。「水曜と日曜だけ休み」なら <code>"0010001"</code> ですね。番号で表現できないシフトでも自由に組めますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc12">月末日を求めるEOMONTH関数の日付計算</span></h2>



<p class="wp-block-paragraph">経理・請求業務で活躍するのが月末日の計算です。「今月の最終日は何日か」「翌々月末の支払期日はいつか」を自動で求めてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc13">EOMONTH関数の基本</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>は指定した月数後（または前）の月末日を返します。</p>



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



<p class="wp-block-paragraph">第2引数の月数で「何ヶ月後の月末か」を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>意味</th><th>結果の例（A2が2026/4/15の場合）</th></tr></thead><tbody><tr><td><code>=EOMONTH(A2, 0)</code></td><td>当月末</td><td>2026/4/30</td></tr><tr><td><code>=EOMONTH(A2, 1)</code></td><td>翌月末</td><td>2026/5/31</td></tr><tr><td><code>=EOMONTH(A2, -1)</code></td><td>前月末</td><td>2026/3/31</td></tr><tr><td><code>=EOMONTH(A2, 2)</code></td><td>翌々月末</td><td>2026/6/30</td></tr><tr><td><code>=EOMONTH(A2, 12)</code></td><td>1年後の月末</td><td>2027/4/30</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">翌月末・翌々月末の支払期日を計算する</span></h3>



<p class="wp-block-paragraph">請求書の支払条件が「翌月末払い」や「翌々月末払い」の場合、EOMONTH関数で期日を自動計算できます。</p>



<p class="wp-block-paragraph"><strong>翌月末払い（月末締め）の場合</strong></p>



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



<p class="wp-block-paragraph"><strong>翌々月末払い（月末締め）の場合</strong></p>



<pre class="wp-block-code"><code>=EOMONTH(A2, 2)</code></pre>



<p class="wp-block-paragraph"><strong>月初日を求めたい場合</strong></p>



<p class="wp-block-paragraph">EOMONTH関数で前月末を求めて、1日を足すと当月1日になります。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>EOMONTH+WORKDAYで月末の営業日を求める</strong></p><p>「月末の5営業日前」を求めたいときは、EOMONTH関数とWORKDAY関数を組み合わせます。<code>=WORKDAY(EOMONTH(A2,0), -5, 祝日リスト)</code> とすれば、月末から営業日ベースで5日前の日付が求まります。月次の締め日を「営業日ベース」で運用している会社で重宝しますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">EDATE関数でN ヶ月後の同日を求める</span></h3>



<p class="wp-block-paragraph">「3ヶ月後の同じ日付」を求めたいときは<a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>を使います。月末日ではなく「同日」を返す点がEOMONTHとの違いです。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>意味</th><th>結果の例（A2が2026/4/15の場合）</th></tr></thead><tbody><tr><td><code>=EDATE(A2, 1)</code></td><td>1ヶ月後の同日</td><td>2026/5/15</td></tr><tr><td><code>=EDATE(A2, 3)</code></td><td>3ヶ月後の同日</td><td>2026/7/15</td></tr><tr><td><code>=EDATE(A2, 12)</code></td><td>1年後の同日</td><td>2027/4/15</td></tr><tr><td><code>=EDATE(A2, -6)</code></td><td>半年前の同日</td><td>2025/10/15</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">契約更新日や定期点検日の計算で重宝します。たとえば「2026/4/15に契約開始、1年契約」なら、<code>=EDATE(A2,12)-1</code> で 2027/4/14 が更新前日として求まりますね。</p>



<figure class="wp-block-table"><table><thead><tr><th>シーン</th><th>おすすめ関数</th><th>数式例</th></tr></thead><tbody><tr><td>請求書の月末締め支払期日</td><td>EOMONTH</td><td><code>=EOMONTH(A2,1)</code></td></tr><tr><td>契約更新日（N ヶ月契約）</td><td>EDATE</td><td><code>=EDATE(A2,12)</code></td></tr><tr><td>月初日の自動入力</td><td>EOMONTH</td><td><code>=EOMONTH(A2,-1)+1</code></td></tr><tr><td>月末締め営業日ベースの締め日</td><td>EOMONTH+WORKDAY</td><td><code>=WORKDAY(EOMONTH(A2,0),-5,祝日)</code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">年度を判定する関数テクニック</span></h2>



<p class="wp-block-paragraph">日本の企業や学校では「4月始まり」の年度を使うことが多いですよね。Excelには年度を直接返す関数はありませんが、<a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>を組み合わせれば簡単に求められます。</p>



<h3 class="wp-block-heading"><span id="toc17">YEAR関数+IF関数で年度を求める</span></h3>



<p class="wp-block-paragraph">年度判定の基本の数式はこちらです。</p>



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



<p class="wp-block-paragraph">考え方はシンプルです。「<a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH関数</a>で月を取り出し、4月以降ならそのまま、3月以前なら1年引く」。これだけで4月始まりの年度が求まります。</p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>MONTH(A2)</th><th>判定</th><th>年度の結果</th></tr></thead><tbody><tr><td>2026/4/1</td><td>4</td><td>4以上 → そのまま</td><td>2026</td></tr><tr><td>2026/9/30</td><td>9</td><td>4以上 → そのまま</td><td>2026</td></tr><tr><td>2027/3/31</td><td>3</td><td>4未満 → 1年引く</td><td>2026</td></tr><tr><td>2027/1/15</td><td>1</td><td>4未満 → 1年引く</td><td>2026</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">2026年4月から2027年3月まで、すべて「2026年度」と判定されるのがわかります。</p>



<h3 class="wp-block-heading"><span id="toc18">4月始まりの年度またぎ処理</span></h3>



<p class="wp-block-paragraph">年度判定を使った実務パターンをいくつか紹介します。</p>



<p class="wp-block-paragraph"><strong>「○○年度」と表示する</strong></p>



<pre class="wp-block-code"><code>=IF(MONTH(A2)&gt;=4,YEAR(A2),YEAR(A2)-1)&amp;&quot;年度&quot;</code></pre>



<p class="wp-block-paragraph"><strong>上半期・下半期を判定する</strong></p>



<p class="wp-block-paragraph">4月〜9月を上半期、10月〜3月を下半期として判定します。</p>



<pre class="wp-block-code"><code>=IF(AND(MONTH(A2)&gt;=4,MONTH(A2)&lt;=9),&quot;上半期&quot;,&quot;下半期&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>四半期（Q1〜Q4）を判定する</strong></p>



<p class="wp-block-paragraph">4月始まりでQ1=4〜6月、Q2=7〜9月、Q3=10〜12月、Q4=1〜3月です。CHOOSE関数を使うとわかりやすく書けます。</p>



<pre class="wp-block-code"><code>=CHOOSE(MONTH(A2),4,4,4,1,1,1,2,2,2,3,3,3)</code></pre>



<p class="wp-block-paragraph">この数式は月の番号（1〜12）に応じてQ1〜Q4の数字を返します。「Q」を付けて表示したい場合はこうなります。</p>



<pre class="wp-block-code"><code>=&quot;Q&quot;&amp;CHOOSE(MONTH(A2),4,4,4,1,1,1,2,2,2,3,3,3)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>開始月が4月以外の場合</strong></p><p>年度の開始月が4月以外の場合は、IF関数の条件を変更してください。たとえば10月始まりなら <code>=IF(MONTH(A2)>=10, YEAR(A2), YEAR(A2)-1)</code> です。海外子会社や学校・自治体で使う際は要注意ですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc19">実務で使う日付計算シナリオ集</span></h2>



<p class="wp-block-paragraph">ここからは実務でよくある5つのシーンを、具体的な数式で解説します。</p>



<p class="wp-block-paragraph">次のサンプルデータを使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（氏名）</th><th>B列（入社日）</th><th>C列（生年月日）</th><th>D列（契約終了日）</th></tr></thead><tbody><tr><td>田中太郎</td><td>2020/4/1</td><td>1990/4/15</td><td>2027/3/31</td></tr><tr><td>鈴木花子</td><td>2022/10/1</td><td>1995/8/20</td><td>2026/9/30</td></tr><tr><td>佐藤一郎</td><td>2018/7/15</td><td>1985/12/3</td><td>2028/7/14</td></tr><tr><td>山田美咲</td><td>2023/4/1</td><td>2000/1/30</td><td>2026/3/31</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc20">シナリオ1: 社員の年齢と勤続年数を一括計算</span></h3>



<p class="wp-block-paragraph">人事台帳で「今日時点の年齢」と「勤続年数」を自動で更新したい場面です。</p>



<p class="wp-block-paragraph"><strong>年齢（満年齢）</strong></p>



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



<p class="wp-block-paragraph"><strong>勤続年数（○年○ヶ月）</strong></p>



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



<p class="wp-block-paragraph">TODAY関数は開いた日に再計算されるので、毎日最新の値になります。年度更新のたびに数式を直す必要がなくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc21">シナリオ2: 契約終了までの残り営業日を数える</span></h3>



<p class="wp-block-paragraph">「契約終了日まであと何営業日あるか」を表示する場面です。プロジェクトのカウントダウンにも使えます。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(TODAY(), D2)</code></pre>



<p class="wp-block-paragraph">祝日リストも考慮するなら、別シートに祝日一覧を作って参照します。</p>



<pre class="wp-block-code"><code>=NETWORKDAYS(TODAY(), D2, 祝日!$A$2:$A$50)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>祝日リストの作り方</strong></p><p>内閣府が公開している<a href="https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html">祝日CSV</a>をダウンロードして「祝日」シートに貼り付ければ、メンテナンスフリーで毎年の祝日を反映できます。VLOOKUP を組み合わせれば、振替休日もまとめて管理できますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc22">シナリオ3: 請求書の支払期日を自動入力</span></h3>



<p class="wp-block-paragraph">「請求書発行日の翌月末払い」を自動計算する場面です。経理業務で頻出します。</p>



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



<p class="wp-block-paragraph">支払期日が土日に当たる場合、前営業日に繰り上げたいなら次のように書きます。</p>



<pre class="wp-block-code"><code>=WORKDAY(EOMONTH(A2,1)+1, -1, 祝日リスト)</code></pre>



<p class="wp-block-paragraph">「翌月末の翌営業日から1営業日戻る」というロジックです。月末が金曜なら金曜、土曜なら金曜、日曜なら金曜と、最も近い前営業日が返ります。</p>



<h3 class="wp-block-heading"><span id="toc23">シナリオ4: プロジェクトの所要月数を計算</span></h3>



<p class="wp-block-paragraph">「プロジェクト開始から終了まで何ヶ月か」を求める場面です。請求書の按分計算や進捗管理で使います。</p>



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



<p class="wp-block-paragraph">「○年○ヶ月」で表示したい場合はこちら。</p>



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



<p class="wp-block-paragraph">DATEDIFを避けたい場合は次の代替式が使えます。</p>



<pre class="wp-block-code"><code>=(YEAR(D2)-YEAR(B2))*12+MONTH(D2)-MONTH(B2)</code></pre>



<h3 class="wp-block-heading"><span id="toc24">シナリオ5: 年度別の集計用キーを作る</span></h3>



<p class="wp-block-paragraph">ピボットテーブルや SUMIFS で「年度別」に集計したいときの前処理です。</p>



<pre class="wp-block-code"><code>=IF(MONTH(A2)&gt;=4,YEAR(A2),YEAR(A2)-1)&amp;&quot;年度&quot;</code></pre>



<p class="wp-block-paragraph">この数式で「2026年度」のような文字列が返るので、SUMIFS の条件に直接渡せます。</p>



<pre class="wp-block-code"><code>=SUMIFS(売上!C:C, 売上!D:D, &quot;2026年度&quot;)</code></pre>



<p class="wp-block-paragraph">四半期別に集計したいなら CHOOSE と組み合わせて「2026Q1」のようなキーを作ると便利です。</p>



<h3 class="wp-block-heading"><span id="toc25">シナリオ早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>シナリオ</th><th>関数の組み合わせ</th><th>数式例</th></tr></thead><tbody><tr><td>年齢の自動計算</td><td>DATEDIF + TODAY</td><td><code>=DATEDIF(C2,TODAY(),"Y")</code></td></tr><tr><td>勤続年月（○年○ヶ月）</td><td>DATEDIF × 2</td><td><code>=DATEDIF(B2,TODAY(),"Y")&"年"&DATEDIF(B2,TODAY(),"YM")&"ヶ月"</code></td></tr><tr><td>残り営業日のカウント</td><td>NETWORKDAYS</td><td><code>=NETWORKDAYS(TODAY(),D2,祝日)</code></td></tr><tr><td>翌月末払いの支払期日</td><td>EOMONTH</td><td><code>=EOMONTH(A2,1)</code></td></tr><tr><td>支払期日を前営業日に繰り上げ</td><td>WORKDAY + EOMONTH</td><td><code>=WORKDAY(EOMONTH(A2,1)+1,-1,祝日)</code></td></tr><tr><td>プロジェクト所要月数</td><td>DATEDIF</td><td><code>=DATEDIF(B2,D2,"M")</code></td></tr><tr><td>年度別集計キーの作成</td><td>YEAR + MONTH + IF</td><td><code>=IF(MONTH(A2)>=4,YEAR(A2),YEAR(A2)-1)&"年度"</code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc26">よくあるエラーと対処法</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>日数の引き算結果が日付（1900/&#8230;）で表示される</td><td>元セルが「日付」書式 → 結果セルも日付書式に</td><td>セル書式を「標準」に変更</td></tr><tr><td><code>#NUM!</code> エラー（DATEDIF）</td><td>開始日 > 終了日になっている</td><td>引数の順序を確認。第1引数が「古い日付」</td></tr><tr><td><code>#NAME?</code> エラー（DATEDIF）</td><td>関数名のタイプミス</td><td>DATEDIFは関数候補に出ないので手入力で確認</td></tr><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>NETWORKDAYSの結果が想定より多い</td><td>開始日と終了日の両方をカウントしている仕様</td><td>必要に応じて <code>-1</code> で調整</td></tr><tr><td>EOMONTHが <code>#NUM!</code></td><td>結果の日付がExcelの上限（9999/12/31）超</td><td>月数の引数を見直す</td></tr><tr><td>DATEDIF(&#8220;M&#8221;)の結果が直感とずれる</td><td>月末日の扱いに注意（30日と31日の差）</td><td><code>"YM"</code> と組み合わせて検証</td></tr><tr><td>年度の数式で4月1日が前年度になる</td><td><code>>=4</code> ではなく <code>>4</code> になっている</td><td>比較演算子を確認</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>文字列日付に潜む落とし穴</strong></p><p>CSVをコピペした日付は、見た目は日付でも実は文字列ということがよくあります。<code>=ISNUMBER(A2)</code> で判定して、FALSE なら DATEVALUE で数値（シリアル値）に変換してから計算しましょう。文字列のまま引き算すると <code>#VALUE!</code> エラーになります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc27">よくある質問</span></h2>



<p class="wp-block-paragraph">日付計算関数についてよく寄せられる質問にお答えします。</p>



<h3 class="wp-block-heading"><span id="toc28">Q1. DATEDIF関数を使ってもいいのですか？</span></h3>



<p class="wp-block-paragraph">年齢計算（<code>"Y"</code> 単位）や月数計算（<code>"M"</code> 単位）であれば、実務で安心して使えます。Microsoftの公式ドキュメントにも掲載されている正規の関数です。ただし <code>"MD"</code> 単位だけは結果が不正確になることがあるので、「○年○ヶ月○日」と表示したい場合は引き算で日数を別途求める方法も検討してください。</p>



<h3 class="wp-block-heading"><span id="toc29">Q2. 「今日時点で何日後か」を自動で更新するには？</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY関数</a>と組み合わせます。<code>=A2-TODAY()</code> で「A2の日付まであと何日か」、<code>=NETWORKDAYS(TODAY(),A2)</code> で「あと何営業日か」が求まります。TODAY は開いた日に再計算されるので、ブックを開くたびに自動更新されますよ。</p>



<h3 class="wp-block-heading"><span id="toc30">Q3. 土日祝日を除いた日数を数えるには？</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数</a>を使い、第3引数に祝日リストを指定します。<code>=NETWORKDAYS(A2,B2,祝日!$A$2:$A$50)</code> のように別シートで祝日を管理すると、毎年の更新が楽になります。</p>



<h3 class="wp-block-heading"><span id="toc31">Q4. 月末日と翌月の同日、どちらを使うべき？</span></h3>



<p class="wp-block-paragraph">支払条件が「月末締め」なら<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>、「契約日から N ヶ月後」なら<a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>を使います。EOMONTHは必ず月末日（30日・31日・28日・29日）を返し、EDATEは元の日にちを保ったまま月だけ進めます。</p>



<h3 class="wp-block-heading"><span id="toc32">Q5. 年度の開始月が4月以外でも対応できますか？</span></h3>



<p class="wp-block-paragraph">はい、IF関数の比較条件を変えれば対応できます。10月始まりなら <code>=IF(MONTH(A2)>=10,YEAR(A2),YEAR(A2)-1)</code>、7月始まりなら <code>=IF(MONTH(A2)>=7,YEAR(A2),YEAR(A2)-1)</code> です。海外子会社や学校・自治体で使う場合は要チェックです。</p>



<h3 class="wp-block-heading"><span id="toc33">Q6. 日付の引き算と DAYS 関数、どちらを使うべき？</span></h3>



<p class="wp-block-paragraph">普段の業務ではどちらでも問題ありません。文字列の日付（&#8221;2026/4/1&#8243; のようなテキスト）を扱う場面では <a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数</a> のほうが安全です。シンプルさ重視なら引き算、データの形式が不確実なら DAYS と覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc34">Q7. 日付計算の結果が1日ずれることがあります</span></h3>



<p class="wp-block-paragraph">NETWORKDAYS は「両端を含む」、引き算は「終了日のみ含む（開始日は含まない）」など、関数ごとにカウントの仕方が異なります。たとえば「4/1から4/3」を NETWORKDAYS は3日、引き算は2日と返します。実務で扱うときは、どちらの解釈が必要かを意識して関数を選んでください。</p>



<h2 class="wp-block-heading"><span id="toc35">Excel日付計算の関数一覧と比較表</span></h2>



<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><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF</a></td><td>期間の年数・月数・日数</td><td><code>=DATEDIF(開始日,終了日,単位)</code></td><td>年齢計算・在籍期間</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-yearfrac/">YEARFRAC</a></td><td>期間の年数（小数）</td><td><code>=YEARFRAC(開始日,終了日,基準)</code></td><td>利息計算・勤続年数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS</a></td><td>2つの日付間の日数</td><td><code>=DAYS(終了日,開始日)</code></td><td>経過日数</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-days360/">DAYS360</a></td><td>360日基準の日数</td><td><code>=DAYS360(開始日,終了日,方式)</code></td><td>会計計算</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS</a></td><td>営業日数</td><td><code>=NETWORKDAYS(開始日,終了日,祝日)</code></td><td>稼働日計算</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-networkdays_intl/">NETWORKDAYS.INTL</a></td><td>営業日数（カスタム休日）</td><td><code>=NETWORKDAYS.INTL(開始日,終了日,パターン,祝日)</code></td><td>変則シフトの稼働日</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-workday/">WORKDAY</a></td><td>N 営業日後の日付</td><td><code>=WORKDAY(開始日,日数,祝日)</code></td><td>納期計算</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH</a></td><td>月末日</td><td><code>=EOMONTH(開始日,月数)</code></td><td>支払期日・締め日</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE</a></td><td>N ヶ月後の同日</td><td><code>=EDATE(開始日,月数)</code></td><td>契約更新日</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR</a></td><td>年を取り出す</td><td><code>=YEAR(日付)</code></td><td>年度判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH</a></td><td>月を取り出す</td><td><code>=MONTH(日付)</code></td><td>月別集計</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-day/">DAY</a></td><td>日を取り出す</td><td><code>=DAY(日付)</code></td><td>月末日判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-weekday/">WEEKDAY</a></td><td>曜日番号を返す</td><td><code>=WEEKDAY(日付,種類)</code></td><td>曜日判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-today/">TODAY</a></td><td>今日の日付</td><td><code>=TODAY()</code></td><td>年齢計算の基準日</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE</a></td><td>年・月・日から日付を作成</td><td><code>=DATE(年,月,日)</code></td><td>日付の組み立て</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE</a></td><td>文字列を日付に変換</td><td><code>=DATEVALUE(文字列)</code></td><td>データ取り込み</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表をブックマークしておけば、日付計算で迷ったときにすぐ確認できます。</p>



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



<p class="wp-block-paragraph">Excelの日付計算は、場面に応じて最適な関数を選ぶのがポイントです。最後にもう一度、使い分けをおさらいしましょう。</p>



<ul class="wp-block-list"><li><strong>年齢を求める</strong> → <a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>（<code>"Y"</code> 単位）が最もシンプル</li><li><strong>日数を数える</strong> → 日付の引き算が基本。営業日なら<a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数</a></li><li><strong>月末日を求める</strong> → <a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>一択</li><li><strong>N ヶ月後の同日を求める</strong> → <a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a></li><li><strong>年度を判定する</strong> → <a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数</a>+<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>で <code>=IF(MONTH(A2)>=4,YEAR(A2),YEAR(A2)-1)</code></li></ul>



<p class="wp-block-paragraph">迷ったときの判断は次の2ステップです。</p>



<ol class="wp-block-list"><li><strong>期間を計算したい？</strong> → DATEDIF / 引き算 / NETWORKDAYS</li><li><strong>特定の日付がほしい？</strong> → EOMONTH / EDATE / WORKDAY</li></ol>



<p class="wp-block-paragraph">DATEDIF関数は非公式サポートですが、年齢計算（<code>"Y"</code> 単位）と月数計算（<code>"M"</code> 単位）では問題なく動作します。気になる方は代替策（YEAR+IF、YEARFRAC+INT）も活用してください。</p>



<p class="wp-block-paragraph">まずは自分の業務でよく使うパターンから試してみてください。一度数式を組んでしまえば、日付が変わるたびに手計算する必要がなくなりますよ。</p>



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



<p class="wp-block-paragraph">日付関数の個別解説も合わせてチェックしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-yearfrac/">YEARFRAC関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-days/">DAYS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-networkdays_intl/">NETWORKDAYS.INTL関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-workday/">WORKDAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数の使い方</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-weekday/">WEEKDAY関数の使い方</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-date/">DATE関数の使い方</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-days360/">DAYS360関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-date-calculation-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのYEARFRAC関数の使い方｜期間を年単位の小数で計算</title>
		<link>https://mashukabu.com/excel-function-howto-use-yearfrac/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-yearfrac/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DAYS360関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[YEARFRAC関数]]></category>
		<category><![CDATA[利息計算]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2356</guid>

					<description><![CDATA[ExcelのYEARFRAC関数の使い方を基本から解説。2つの日付の間が1年間に占める割合を小数で返す関数です。基準引数5種の違いを計算結果で比較し、利息の日割り計算や勤続年数の算出など実務での活用例も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「利息の日割り計算をしたいのに、期間を年単位の小数で出す方法がわからない」。経理や人事の業務で、こんな場面に遭遇したことはありませんか。</p>



<p class="wp-block-paragraph">単純に日数を365で割る方法もあります。でもうるう年や月ごとの日数の違いを考えると、正確さに不安が残りますよね。</p>



<p class="wp-block-paragraph">ExcelのYEARFRAC関数を使えば、2つの日付の間隔を<strong>年単位の小数</strong>で一発計算できます。この記事では基本の書き方から基準引数5種の違いまで解説。利息計算や勤続年数の求め方、エラー対処法も紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのYEARFRAC関数とは</a></li><li><a href="#toc2" tabindex="0">YEARFRAC関数の使い方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の一覧</a></li><li><a href="#toc5" tabindex="0">基準（第3引数）の違いを比較</a></li></ol></li><li><a href="#toc6" tabindex="0">YEARFRAC関数の使用例</a><ol><li><a href="#toc7" tabindex="0">利息の日割り計算</a></li><li><a href="#toc8" tabindex="0">勤続年数を端数付きで表示</a></li><li><a href="#toc9" tabindex="0">契約期間の按分計算</a></li></ol></li><li><a href="#toc10" tabindex="0">YEARFRAC関数でよくあるエラーと対処法</a><ol><li><a href="#toc11" tabindex="0">#VALUE!エラー（日付が不正な場合）</a></li><li><a href="#toc12" tabindex="0">#NUM!エラー（基準の値が不正な場合）</a></li><li><a href="#toc13" tabindex="0">IFERRORでエラー表示を防ぐ</a></li></ol></li><li><a href="#toc14" tabindex="0">DATEDIF・DAYS360との使い分け</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのYEARFRAC関数とは</span></h2>



<p class="wp-block-paragraph">YEARFRAC関数（読み方: イヤーフラクション）は、<strong>2つの日付の間隔が1年間に占める割合を小数で返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「year（年）」と「fraction（端数・割合）」を組み合わせた造語です。</p>



<p class="wp-block-paragraph">たとえば2024/1/1から2024/7/1までの期間をYEARFRAC関数で求めると、基準によって「0.5」や「0.4973&#8230;」のような値が返ります。つまり約半年ということですね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>だと「0」（1年未満は切り捨て）しか返りません。YEARFRAC関数なら端数まで含めた正確な年数がわかるので、利息の日割り計算や勤続年数の端数表示に重宝しますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: Excel 2007以降のすべてのバージョン（Microsoft 365含む）で使用できます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">YEARFRAC関数の使い方（構文・引数）</span></h2>



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



<pre class="wp-block-code"><code>=YEARFRAC(開始日, 終了日, [基準])</code></pre>



<p class="wp-block-paragraph">カッコの中に「開始日」「終了日」の2つを入れます。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>期間の開始となる日付</td></tr><tr><td>終了日</td><td>必須</td><td>期間の終了となる日付</td></tr><tr><td>基準</td><td>任意</td><td>日数の計算方法を指定する数値（0〜4、省略時は0）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">開始日・終了日にはセル参照、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>、日付の文字列を指定できます。</p>



<h3 class="wp-block-heading"><span id="toc5">基準（第3引数）の違いを比較</span></h3>



<p class="wp-block-paragraph">基準は「1年の日数をどう数えるか」を決めるオプションです。金融計算で使われる設定ですが、一般的な実務では省略しても問題ありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>基準</th><th>計算方法</th><th>1年の日数</th></tr></thead><tbody><tr><td>0（省略時）</td><td>米国方式（NASD 30/360）</td><td>各月30日 / 年360日</td></tr><tr><td>1</td><td>実日数 / 実日数</td><td>うるう年は366日、それ以外は365日</td></tr><tr><td>2</td><td>実日数 / 360日</td><td>年360日として計算</td></tr><tr><td>3</td><td>実日数 / 365日</td><td>年365日として計算（うるう年も同じ）</td></tr><tr><td>4</td><td>ヨーロッパ方式（30/360）</td><td>各月30日 / 年360日</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じ日付ペア（2024/1/1〜2024/7/1）で基準ごとの結果を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>基準</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>0</td><td><code>=YEARFRAC("2024/1/1","2024/7/1",0)</code></td><td>0.5000</td></tr><tr><td>1</td><td><code>=YEARFRAC("2024/1/1","2024/7/1",1)</code></td><td>0.4973</td></tr><tr><td>2</td><td><code>=YEARFRAC("2024/1/1","2024/7/1",2)</code></td><td>0.5056</td></tr><tr><td>3</td><td><code>=YEARFRAC("2024/1/1","2024/7/1",3)</code></td><td>0.4986</td></tr><tr><td>4</td><td><code>=YEARFRAC("2024/1/1","2024/7/1",4)</code></td><td>0.5000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">基準0と4は「各月30日」とみなすので、同じ0.5になります。基準1は実際の日数（182日÷366日）で計算するため、わずかに異なる値です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>使い分けのコツ</strong>: 勤続年数や契約期間など暦日ベースの計算には基準「1」がおすすめです。省略時の基準0は金融向けの計算方法なので、実日数とわずかにズレることがありますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">YEARFRAC関数の使用例</span></h2>



<h3 class="wp-block-heading"><span id="toc7">利息の日割り計算</span></h3>



<p class="wp-block-paragraph">年利3%のローンで、2024/4/1から2024/9/30までの利息を日割りで計算してみましょう。元本は100万円とします。</p>



<pre class="wp-block-code"><code>=1000000 * 0.03 * YEARFRAC(&quot;2024/4/1&quot;,&quot;2024/9/30&quot;,1)</code></pre>



<p class="wp-block-paragraph">YEARFRAC関数が期間を年単位（0.5年）で返します。これに元本と年利を掛けるだけで日割り利息が求められます。結果は15,000円です。</p>



<p class="wp-block-paragraph">日数を手動で数えて365で割る方法より、はるかにシンプルですよね。</p>



<h3 class="wp-block-heading"><span id="toc8">勤続年数を端数付きで表示</span></h3>



<p class="wp-block-paragraph">人事名簿で入社日がA2に入っているとします。勤続年数を小数で自動計算してみましょう。</p>



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



<p class="wp-block-paragraph">TODAY関数（今日の日付を返す関数）と組み合わせると、毎日自動で更新されます。A2が「2020/4/1」で今日が「2026/3/28」なら、結果は約5.99年です。</p>



<p class="wp-block-paragraph">整数部分だけ取り出したい場合は、INT関数（小数を切り捨てる関数）で囲みます。</p>



<pre class="wp-block-code"><code>=INT(YEARFRAC(A2, TODAY(), 1))</code></pre>



<p class="wp-block-paragraph">結果は「5」です。端数を切り捨てた「満何年」が返りますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>「X年Yヶ月」形式で表示したい場合</strong>: YEARFRAC関数では小数しか返せません。「6年5ヶ月」のような表示には<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>が向いています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">契約期間の按分計算</span></h3>



<p class="wp-block-paragraph">年間保守料120万円の契約で、2024/4/1から2024/12/31までの按分額を計算してみましょう。</p>



<pre class="wp-block-code"><code>=1200000 * YEARFRAC(&quot;2024/4/1&quot;,&quot;2024/12/31&quot;,1)</code></pre>



<p class="wp-block-paragraph">YEARFRAC関数が期間の割合（約0.7514年）を返すので、年間費用に掛けるだけで按分額が出ます。結果は約901,639円です。</p>



<p class="wp-block-paragraph">月割りだと10万円×9ヶ月＝90万円ですが、日割りベースでは端数が変わります。経理処理で正確な日割り按分が求められる場面で活躍しますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc11">#VALUE!エラー（日付が不正な場合）</span></h3>



<p class="wp-block-paragraph">YEARFRAC関数に渡した値が正しい日付データでないと#VALUE!エラーが発生します。よくある原因は次の3つです。</p>



<ul class="wp-block-list"><li>セルに日付が「文字列」として入力されている</li><li>全角数字が混じっている（例: 「２０２４/4/1」）</li><li>存在しない日付を指定している（例: 「2024/2/30」）</li></ul>



<p class="wp-block-paragraph">対処法は、セルの表示形式を「日付」に変更するか、DATE関数で日付を作り直すことです。</p>



<pre class="wp-block-code"><code>=YEARFRAC(DATE(2024,4,1), DATE(2024,12,31), 1)</code></pre>



<p class="wp-block-paragraph">DATE関数を経由すれば、確実に正しい日付データとして処理されますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">#NUM!エラー（基準の値が不正な場合）</span></h3>



<p class="wp-block-paragraph">第3引数の「基準」に0〜4以外の値を指定すると#NUM!エラーが発生します。</p>



<pre class="wp-block-code"><code>=YEARFRAC(A2, B2, 5)   → #NUM!エラー</code></pre>



<p class="wp-block-paragraph">基準は0・1・2・3・4の5種類だけです。それ以外の数値を入れていないか確認してください。</p>



<h3 class="wp-block-heading"><span id="toc13">IFERRORでエラー表示を防ぐ</span></h3>



<p class="wp-block-paragraph">データに不備がある行でもエラー表示を防ぎたい場合は、IFERROR関数（エラーのとき代替値を返す関数）で囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(YEARFRAC(A2, TODAY(), 1), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A2が空欄だったり不正な日付でも、エラーの代わりに空白が表示されます。名簿のように大量の行がある場面ではこの書き方がおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc14">DATEDIF・DAYS360との使い分け</span></h2>



<p class="wp-block-paragraph">YEARFRAC関数と似た関数に<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-days360/">DAYS360関数</a>があります。それぞれ戻り値の形式が異なるので、目的に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>YEARFRAC</th><th>DATEDIF</th><th>DAYS360</th></tr></thead><tbody><tr><td>戻り値</td><td>年数の小数（例: 0.50）</td><td>整数（例: 6）</td><td>日数（例: 180）</td></tr><tr><td>端数の扱い</td><td>小数で含まれる</td><td>切り捨て</td><td>日単位で返す</td></tr><tr><td>単位</td><td>年のみ（自動）</td><td>Y/M/D/YM/MDなど</td><td>日のみ</td></tr><tr><td>主な用途</td><td>利息日割り・按分計算</td><td>年齢・勤続年数</td><td>会計上の日数計算</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>おすすめ関数</th><th>数式例</th></tr></thead><tbody><tr><td>期間を年の小数で表示</td><td>YEARFRAC</td><td><code>=YEARFRAC(A2,B2,1)</code></td></tr><tr><td>年齢を満年齢で求める</td><td>DATEDIF</td><td><code>=DATEDIF(A2,TODAY(),"Y")</code></td></tr><tr><td>「X年Yヶ月」形式で表示</td><td>DATEDIF</td><td>Y+YMの組み合わせ</td></tr><tr><td>360日基準の日数を求める</td><td>DAYS360</td><td><code>=DAYS360(A2,B2)</code></td></tr><tr><td>日割り利息を計算する</td><td>YEARFRAC</td><td><code>=元本<em>利率</em>YEARFRAC(A2,B2,1)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">小数の年数がほしいならYEARFRAC、整数の年・月・日で分けたいならDATEDIF、360日基準の日数ならDAYS360と覚えておけば迷いませんよ。</p>



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



<p class="wp-block-paragraph">YEARFRAC関数は、2つの日付の間隔を<strong>年単位の小数</strong>で返す関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=YEARFRAC(開始日, 終了日, [基準])</code> の2〜3引数</li><li>戻り値は小数（例: 0.50年）で、端数まで正確にわかる</li><li>基準は省略可。暦日ベースの計算には「1」を指定</li><li>利息日割り計算は <code>=元本<em>利率</em>YEARFRAC(開始日,終了日,1)</code></li><li>勤続年数は <code>=YEARFRAC(入社日, TODAY(), 1)</code> で自動計算</li><li>「X年Yヶ月」形式にしたいなら<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>を使う</li><li>360日基準の日数計算には<a href="https://mashukabu.com/excel-function-howto-use-days360/">DAYS360関数</a>が便利</li></ul>



<p class="wp-block-paragraph">日付計算の関数をまとめて知りたい方は、<a href="https://mashukabu.com/excel-date-calculation-guide/">Excelの日付計算ガイド</a>もあわせて読んでみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-yearfrac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDATE関数の使い方｜年・月・日から日付を作成する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-date/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-date/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 28 May 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATE関数]]></category>
		<category><![CDATA[シリアル値]]></category>
		<category><![CDATA[日付作成]]></category>
		<category><![CDATA[日付計算]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1903</guid>

					<description><![CDATA[ExcelのDATE関数で年・月・日の数値から日付を作成する方法を解説。別セルからの日付組み立て・月末日計算・○ヶ月後の算出など実務例を紹介し、TODAY・EOMONTHとの使い分けも整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「年・月・日がバラバラのセルに入っているけど、これを1つの日付にまとめたい」と思ったことはありませんか。手入力で日付を打ち直すのは手間ですし、ミスのもとにもなりますよね。</p>



<p class="wp-block-paragraph">ExcelのDATE関数を使えば、年・月・日の数値を指定するだけで正しい日付を作成できます。この記事では基本の書き方から、月末日の算出や○ヶ月後の計算といった実務パターンまでまとめて紹介します。</p>



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



<ul class="wp-block-list"><li>年・月・日が別セルに分かれたデータを日付にまとめたい</li><li>月末日や○ヶ月後の日付を数式で自動計算したい</li><li>DATE関数とTODAY関数・EOMONTH関数の違いを整理したい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</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><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></ol></li><li><a href="#toc9" tabindex="0">DATE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">年月日を別セルから組み立てる</a></li><li><a href="#toc11" tabindex="0">月末日を計算する（翌月の0日）</a></li><li><a href="#toc12" tabindex="0">○ヶ月後の日付を求める</a></li><li><a href="#toc13" tabindex="0">期日・締切日を自動計算する</a></li></ol></li><li><a href="#toc14" tabindex="0">DATE関数とTEXT関数の連携</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">よくあるエラーと対処法</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">DATE関数とは？</span></h2>



<p class="wp-block-paragraph"><strong>DATE関数</strong>（読み方: デイト）は、年・月・日の3つの数値を指定して日付のシリアル値を返す関数です。英語の「date（日付）」がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">Excelでは日付を内部的に「シリアル値」という数値で管理しています。1900年1月1日を「1」として、1日ごとに1ずつ増える仕組みです。たとえば2025年4月1日のシリアル値は「45748」です。</p>



<p class="wp-block-paragraph">DATE関数が返すのもこのシリアル値ですが、セルの表示形式が自動的に「日付」に切り替わるため、見た目は <code>2025/4/1</code> のように表示されます。</p>



<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つとも<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>西暦の年を数値で指定（1900〜9999）。0〜1899を指定すると自動的に1900が加算される</td></tr><tr><td><strong>月</strong></td><td>必須</td><td>月を数値で指定（通常1〜12）。13以上や0・負の値も指定可能（後述）</td></tr><tr><td><strong>日</strong></td><td>必須</td><td>日を数値で指定（通常1〜31）。32以上や0・負の値も指定可能（後述）</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>年に0〜1899を指定すると、自動で1900が加算されます。たとえば <code>=DATE(24,4,1)</code> は <code>2024/4/1</code> ではなく <code>1924/4/1</code> になります。西暦は4桁で指定するのが安全です。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">数値を直接指定して日付を作る</span></h3>



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



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



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



<p class="wp-block-paragraph">シリアル値「45748」が返り、セルには日付形式で表示されます。</p>



<h3 class="wp-block-heading"><span id="toc7">別セルの値から日付を組み立てる</span></h3>



<p class="wp-block-paragraph">A1に「2025」、B1に「4」、C1に「1」が入っている場合、次のように書きます。</p>



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



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



<p class="wp-block-paragraph">年・月・日がバラバラの列に入っているデータを1つの日付にまとめたいときに便利です。CSVから取り込んだデータの整形でよく使うパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">シリアル値を確認する</span></h3>



<p class="wp-block-paragraph">DATE関数が返すのはシリアル値です。セルの表示形式を「標準」に変更すると、数値を確認できます。</p>



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



<p class="wp-block-paragraph">表示形式「日付」: <strong>2025/4/1</strong><br>表示形式「標準」: <strong>45748</strong></p>



<p class="wp-block-paragraph">シリアル値が分かると、日付同士の引き算で日数差を計算できます。</p>



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



<h3 class="wp-block-heading"><span id="toc10">年月日を別セルから組み立てる</span></h3>



<p class="wp-block-paragraph">社員マスターなどで、生年月日が「年」「月」「日」の3列に分かれているケースは多いですよね。DATE関数で1列にまとめましょう。</p>



<p class="wp-block-paragraph">A列に年、B列に月、C列に日が入っているとします。</p>



<pre class="wp-block-code"><code>=DATE(A2, B2, C2)</code></pre>



<p class="wp-block-paragraph">結果をオートフィルで下にコピーすれば、全行まとめて日付に変換できます。</p>



<h3 class="wp-block-heading"><span id="toc11">月末日を計算する（翌月の0日）</span></h3>



<p class="wp-block-paragraph">DATE関数は、日に「0」を指定すると<strong>前月の末日</strong>を返します。この特性を使うと月末日を簡単に計算できます。</p>



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



<p class="wp-block-paragraph">結果: <strong>2025/4/30</strong>（5月の前月＝4月の末日）</p>



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



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



<p class="wp-block-paragraph">A2に「2025」、B2に「4」が入っている場合、結果は <strong>2025/4/30</strong> です。<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>でも月末日を取得できますが、DATE関数なら年・月の数値だけで計算できるのがポイントです。</p>



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



<p class="wp-block-paragraph">月の引数に加減算を入れると、○ヶ月前後の日付を計算できます。</p>



<pre class="wp-block-code"><code>=DATE(2025, 4+3, 1)</code></pre>



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



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



<p class="wp-block-paragraph">結果: <strong>2025/2/1</strong>（2ヶ月前）</p>



<p class="wp-block-paragraph">月に13以上や0以下の値を指定しても、DATE関数が自動的に年をまたいで計算してくれます。たとえば <code>=DATE(2025, 15, 1)</code> は <strong>2026/3/1</strong>（2025年の15ヶ月目）になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>○ヶ月後の同日を正確に求めたい場合は<a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a>がおすすめです。DATE関数は「年・月・日を個別に制御したい」ときに使い、EDATE関数は「基準日からの月数計算」に使うと役割がはっきりします。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">期日・締切日を自動計算する</span></h3>



<p class="wp-block-paragraph">請求書の支払期日（翌月末など）を自動で計算する例です。A2に請求日が入っているとします。</p>



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



<p class="wp-block-paragraph">結果: A2が <code>2025/4/15</code> なら <strong>2025/5/31</strong>（翌月末）</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH関数</a>で年・月を取り出し、DATE関数で再構成するパターンです。期日管理や締切計算の定番テクニックですよ。</p>



<h2 class="wp-block-heading"><span id="toc14">DATE関数とTEXT関数の連携</span></h2>



<p class="wp-block-paragraph">DATE関数で作った日付を、特定の形式の文字列として表示したい場合は<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>と組み合わせます。</p>



<h3 class="wp-block-heading"><span id="toc15">和暦で表示する</span></h3>



<pre class="wp-block-code"><code>=TEXT(DATE(2025,4,1), &quot;ggge年m月d日&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>令和7年4月1日</strong></p>



<h3 class="wp-block-heading"><span id="toc16">曜日付きで表示する</span></h3>



<pre class="wp-block-code"><code>=TEXT(DATE(2025,4,1), &quot;yyyy/mm/dd(aaa)&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <strong>2025/04/01(火)</strong></p>



<p class="wp-block-paragraph">DATE関数の結果はシリアル値なので、TEXT関数の書式コードをそのまま適用できます。「yyyy年m月」のような年月だけの表示や、「m/d」のような短い形式にも対応できます。</p>



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



<p class="wp-block-paragraph">DATE関数はエラーが出にくい関数ですが、意図しない結果になるケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>日付ではなく5桁の数字が表示される</td><td>セルの表示形式が「標準」のまま</td><td>セルの表示形式を「日付」に変更する</td></tr><tr><td>月に13以上を指定したら翌年の日付になった</td><td>DATE関数の自動繰り上げ機能</td><td>仕様通り。月が12を超えると自動で年に繰り上がる</td></tr><tr><td>日に32以上を指定したら翌月の日付になった</td><td>DATE関数の自動繰り上げ機能</td><td>仕様通り。日が月末を超えると翌月に繰り上がる</td></tr><tr><td>年に「24」と入れたら1924年になった</td><td>0〜1899は自動で+1900される</td><td>西暦は4桁（2024）で指定する</td></tr><tr><td>#VALUE! エラーが出る</td><td>引数に数値以外（文字列など）を指定した</td><td>数値またはセル参照を確認する。文字列の日付は<a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数</a>を使う</td></tr><tr><td>#NUM! エラーが出る</td><td>年に負の値を指定した、または結果が日付範囲外</td><td>年は0以上を指定する。Excelの日付範囲は1900/1/1〜9999/12/31</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>月や日の自動繰り上げは、DATE関数の便利な仕様です。たとえば <code>=DATE(2025,2,30)</code> は2月30日ではなく <strong>2025/3/2</strong> になります。「月末を超えた分は翌月に繰り上がる」と覚えておくと、意図しない結果を防げます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">似た関数との違い・使い分け</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><strong>DATE</strong></td><td>年・月・日の数値から日付を作成する</td><td><code>=DATE(2025,4,1)</code> → 2025/4/1</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></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR関数</a></strong></td><td>日付から年を取り出す</td><td><code>=YEAR(A1)</code> → 2025</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH関数</a></strong></td><td>日付から月を取り出す</td><td><code>=MONTH(A1)</code> → 4</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-day/">DAY関数</a></strong></td><td>日付から日を取り出す</td><td><code>=DAY(A1)</code> → 1</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数</a></strong></td><td>基準日から○ヶ月後/前の同日を返す</td><td><code>=EDATE(A1,3)</code> → 3ヶ月後</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a></strong></td><td>基準日から○ヶ月後/前の月末日を返す</td><td><code>=EOMONTH(A1,0)</code> → 当月末日</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></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数</a></strong></td><td>文字列の日付をシリアル値に変換する</td><td><code>=DATEVALUE("2025/4/1")</code> → シリアル値</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li>「年・月・日をバラバラに指定して日付を作りたい」→ <strong>DATE関数</strong></li><li>「今日の日付を自動で入れたい」→ <strong>TODAY関数</strong></li><li>「基準日から○ヶ月後の同じ日を知りたい」→ <strong>EDATE関数</strong></li><li>「月末日を求めたい」→ <strong>EOMONTH関数</strong>（DATE関数の0日テクニックでも可）</li><li>「2つの日付の差を知りたい」→ <strong>DATEDIF関数</strong></li></ul>



<p class="wp-block-paragraph">DATE関数は「年・月・日を個別にコントロールできる」のが最大の強みです。YEAR/MONTH/DAY関数と組み合わせて日付の一部だけを変更する使い方も覚えておくと便利ですよ。</p>



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



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



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=DATE(年, 月, 日)</code> ── 3つの引数はすべて必須</li><li><strong>戻り値</strong>: 日付のシリアル値（表示形式で日付として見える）</li><li><strong>自動繰り上げ</strong>: 月が12を超えると年に、日が月末を超えると翌月に自動調整</li><li><strong>実務活用</strong>: 別セルの値から日付を組み立てる、月末日の計算（翌月の0日）、○ヶ月後の算出、期日管理</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-edate/">EDATE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数</a>と目的に応じて使い分ける</li></ul>



<p class="wp-block-paragraph">日付の計算は実務で頻繁に使うので、DATE関数の「月に+1して日を0にすると月末日」のテクニックは覚えておいて損はないですよ。</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-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-today/">TODAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-eomonth/">EOMONTH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-edate/">EDATE関数の使い方</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-list-by-function/">機能別のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順のエクセル関数一覧</a></li><li><a href="https://mashukabu.com/excel-error-value-list/">エラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-date/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
