<?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/%E5%8B%A4%E7%B6%9A%E5%B9%B4%E6%95%B0/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>スプレッドシートの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-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">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>スプレッドシートの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-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">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>ExcelのDATEDIF関数の使い方｜年齢・勤続年数を計算</title>
		<link>https://mashukabu.com/excel-function-howto-use-datedif/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-datedif/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 12 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DAYS関数]]></category>
		<category><![CDATA[EDATE関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2376</guid>

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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">セルに表示されるエラーの種類と原因、対処方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-datedif/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelの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-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">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>
	</channel>
</rss>
