<?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>DATEDIF &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/datedif/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 23 May 2026 08:00:03 +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>DATEDIF &#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>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-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">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のDAYS関数の使い方｜日数計算と実務活用を解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-days/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-days/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 13 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF]]></category>
		<category><![CDATA[DAYS関数]]></category>
		<category><![CDATA[NETWORKDAYS]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[日数計算]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2385</guid>

					<description><![CDATA[ExcelのDAYS関数で2つの日付間の日数を求める方法を解説。引数の順番、TODAY関数との組み合わせ、納期管理や経過日数の実務例を紹介。引き算・DATEDIF・NETWORKDAYSとの使い分け比較表つき。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「2つの日付の間が何日あるか」を計算したいこと、ありますよね。引き算でもできますが、表示形式が日付のままになって数値として扱えなかったり、見た目が崩れたりと地味にハマるポイントがあります。</p>



<p class="wp-block-paragraph">そんなときに使いたいのが <strong>DAYS関数</strong> です。この記事では、DAYS関数の基本から実務での活用パターン、似た関数との使い分けまで解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 2つの日付の日数差を正確に求めたい<br>&#8211; 引き算とDAYS関数の違いがわからない<br>&#8211; DATEDIF関数やNETWORKDAYS関数との使い分けを知りたい</p></blockquote>




  <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">DAYS関数とは？</a></li><li><a href="#toc2" tabindex="0">ExcelのDAYS関数の書き方</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">DAYS関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">2つの日付の日数差を求める</a></li><li><a href="#toc7" tabindex="0">終了日が開始日より前の場合</a></li><li><a href="#toc8" tabindex="0">文字列の日付を指定する</a></li><li><a href="#toc9" tabindex="0">開始日を含めた日数を求める（+1問題）</a></li></ol></li><li><a href="#toc10" tabindex="0">実務での活用例</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><li><a href="#toc14" tabindex="0">2つの日付列から一括で日数を計算する</a></li></ol></li><li><a href="#toc15" tabindex="0">DAYS関数・引き算・DATEDIF・NETWORKDAYSの使い分け</a><ol><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><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li><li><a href="#toc21" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">DAYS関数は、2つの日付の間の日数を求める関数です。読み方は「デイズ」で、英語の <strong>Days（日数）</strong> がそのまま名前になっています。</p>



<p class="wp-block-paragraph">「開始日から終了日まで何日か」をシンプルに返してくれます。Excel 2013以降で使える関数です。</p>



<p class="wp-block-paragraph">たとえば、2026年1月1日から2026年3月31日までの日数は <strong>89日</strong> です。DAYS関数なら1つの数式でこの答えが出ます。</p>



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



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



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



<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">引数の順番に注意してください。<strong>終了日が先、開始日が後</strong> です。<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a>は「開始日, 終了日」の順番なので、混同しないようにしましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>引数の覚え方</strong></p><p>「<strong>終了日 − 開始日</strong>」の引き算をイメージすると覚えやすいですよ。引かれる数（終了日）が先にくる、と考えてみてください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">2つの日付の日数差を求める</span></h3>



<p class="wp-block-paragraph">A1に「2026/1/1」、B1に「2026/3/31」と入っている場合を見てみましょう。</p>



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



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



<p class="wp-block-paragraph">B1（終了日）からA1（開始日）を引いた日数が返ります。結果は整数なので、そのまま計算に使えます。</p>



<h3 class="wp-block-heading"><span id="toc7">終了日が開始日より前の場合</span></h3>



<p class="wp-block-paragraph">DAYS関数は、終了日が開始日より前でもエラーになりません。</p>



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



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



<p class="wp-block-paragraph">マイナスの値が返ります。「期限切れかどうか」の判定に使えるので、これは便利な仕様です。</p>



<h3 class="wp-block-heading"><span id="toc8">文字列の日付を指定する</span></h3>



<p class="wp-block-paragraph">DAYS関数はセル参照だけでなく、文字列で直接日付を指定することもできます。</p>



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



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



<p class="wp-block-paragraph">文字列の日付は内部で自動的に日付データに変換されます。ただし、セル参照のほうが入力ミスを防げるのでおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc9">開始日を含めた日数を求める（+1問題）</span></h3>



<p class="wp-block-paragraph">DAYS関数は「終了日 − 開始日」の差を返します。つまり、<strong>開始日そのものは日数に含まれません</strong>。</p>



<p class="wp-block-paragraph">たとえば、1月1日から1月3日までの「滞在日数」を求めたい場合です。</p>



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



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



<p class="wp-block-paragraph">1月1日・2日・3日の3日間を数えたいなら、結果に <strong>+1</strong> する必要があります。</p>



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



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



<p class="wp-block-paragraph">「当日を含むかどうか」は業務によって変わります。イベントの開催日数や旅行の宿泊数など、当日を含めるケースでは +1 を忘れないようにしてください。</p>



<h2 class="wp-block-heading"><span id="toc10">実務での活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc11">納期までの残り日数を表示する</span></h3>



<p class="wp-block-paragraph">TODAY関数と組み合わせると、納期までの残り日数をリアルタイムで表示できます。A2に納期が入っている場合です。</p>



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



<p class="wp-block-paragraph">TODAY関数はファイルを開くたびに当日の日付を返します。納期が過ぎるとマイナスになるので、期限切れの判定にも使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">契約の残り日数を管理する</span></h3>



<p class="wp-block-paragraph">契約終了日（B列）から今日までの残り日数を表示し、30日以内なら「更新間近」と表示する例です。</p>



<pre class="wp-block-code"><code>=IF(DAYS(B2, TODAY()) &lt;= 30, &quot;更新間近&quot;, DAYS(B2, TODAY()) &amp; &quot;日&quot;)</code></pre>



<p class="wp-block-paragraph">残り日数が30日以下になったら「更新間近」、それ以外なら「○○日」と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc13">プロジェクトの経過日数を計算する</span></h3>



<p class="wp-block-paragraph">開始日（A列）から今日までの経過日数を求める場合です。</p>



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



<p class="wp-block-paragraph">ここでは TODAY() が終了日の位置にきます。「今日 − 開始日」で経過日数を計算しているわけですね。</p>



<h3 class="wp-block-heading"><span id="toc14">2つの日付列から一括で日数を計算する</span></h3>



<p class="wp-block-paragraph">開始日（A列）と終了日（B列）が並んでいるリストで、C列に日数を一括表示する場合です。</p>



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



<p class="wp-block-paragraph">C2にこの数式を入力し、下方向にコピーすればリスト全体の日数を一気に計算できます。</p>



<h2 class="wp-block-heading"><span id="toc15">DAYS関数・引き算・DATEDIF・NETWORKDAYSの使い分け</span></h2>



<p class="wp-block-paragraph">Excelには日数を計算する方法がいくつかあります。それぞれの違いを表で整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DAYS関数</th><th>引き算（B1-A1）</th><th><a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></th><th>NETWORKDAYS関数</th></tr></thead><tbody><tr><td>戻り値</td><td>日数（整数）</td><td>日数（※表示形式に注意）</td><td>年/月/日を指定可</td><td>営業日数</td></tr><tr><td>引数の順番</td><td>終了日, 開始日</td><td>任意</td><td>開始日, 終了日</td><td>開始日, 終了日</td></tr><tr><td>負の値</td><td>返る</td><td>返る</td><td>#NUM! エラー</td><td>返る</td></tr><tr><td>文字列日付の対応</td><td>自動変換</td><td>エラーになる場合あり</td><td>自動変換</td><td>自動変換</td></tr><tr><td>土日・祝日の除外</td><td>不可</td><td>不可</td><td>不可</td><td>可</td></tr><tr><td>対応バージョン</td><td>2013以降</td><td>すべて</td><td>すべて（非公式）</td><td>すべて</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">どれを使うべき？ 判断フロー</span></h3>



<p class="wp-block-paragraph">迷ったときは、以下の基準で選んでみてください。</p>



<ol class="wp-block-list"><li><strong>土日・祝日を除いた営業日数を求めたい</strong> → NETWORKDAYS関数</li><li><strong>年数や月数の単位で差を求めたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数</a></li><li><strong>単純な日数差を求めたい</strong> → DAYS関数 or 引き算</li><li><strong>文字列日付を扱う可能性がある</strong> → DAYS関数（自動変換してくれる）</li><li><strong>Excel 2010以前の環境で使う</strong> → 引き算</li></ol>



<p class="wp-block-paragraph">DAYS関数と引き算は結果自体は同じです。ただし、引き算はセルの表示形式が「日付」のままだと正しい数値が表示されないことがあります。DAYS関数なら必ず整数が返るので、表示形式のトラブルを避けたいならDAYS関数がおすすめです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>DATEDIF関数の注意点</strong></p><p>DATEDIF関数は公式のサポートページに掲載されていない非公式関数です。動作に問題はありませんが、Excelの関数入力時に候補として表示されません。日数だけの計算ならDAYS関数を使うほうが安心です。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>日付として認識できない文字列を渡した</td><td>セル参照を使うか、「2026/1/1」のように正しい日付形式で入力する</td></tr><tr><td>#NUM!</td><td>日付の範囲外の数値を渡した</td><td>日付として有効な値かどうかを確認する</td></tr><tr><td>結果が日付のように表示される</td><td>セルの表示形式が「日付」になっている</td><td>セルの表示形式を「標準」または「数値」に変更する</td></tr><tr><td>期待と1日ズレる</td><td>開始日を含めて数えている前提だった</td><td>当日を含める場合は結果に +1 する</td></tr><tr><td>大きな数値が表示される</td><td>引数に日付ではなく数値が入っている</td><td>引数のセルが正しい日付データかどうかを確認する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>表示形式のトラブルを防ぐコツ</strong></p><p>DAYS関数の結果が「1900/3/30」のような日付で表示されたら、表示形式が原因です。セルを選択して <strong>Ctrl + 1</strong> → 「標準」を選べば正しい数値が表示されますよ。</p></blockquote>



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



<p class="wp-block-paragraph">DAYS関数は、2つの日付の日数差をシンプルに求められる関数です。</p>



<ul class="wp-block-list"><li><strong>=DAYS(終了日, 開始日)</strong> で日数を返す。引数は終了日が先</li><li>終了日が開始日より前なら <strong>マイナスの値</strong> が返る（エラーにならない）</li><li>TODAY関数と組み合わせれば <strong>残り日数のリアルタイム表示</strong> ができる</li><li>開始日を含めたい場合は結果に <strong>+1</strong> する</li><li>引き算と結果は同じだが、<strong>表示形式トラブルがない</strong>のがDAYS関数の強み</li></ul>



<p class="wp-block-paragraph">日付の引き算で表示が崩れて困った経験がある方は、DAYS関数に切り替えてみてください。数式の意味もわかりやすくなりますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a>や<a href="https://mashukabu.com/excel-function-howto-use-datedif/">DATEDIF関数の使い方</a>もあわせてチェックすると、Excelの日付操作がもっとスムーズになります。<a href="https://mashukabu.com/excel-date-calculation-guide/">日付計算完全攻略記事</a>もぜひ参考にしてみてください。</p>



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



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



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



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



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">エラー値についてのまとめ記事</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-days/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
