Excelで2つの日付の差を計算したい場合、DATEDIF関数が便利です。しかし、Excelの関数一覧にはDATEDIF関数が表示されません。この関数は「隠し関数」とも呼ばれ、直接入力しないと利用できないため、戸惑う方もいるでしょう。本記事では、DATEDIF関数が関数一覧にない理由と、その入力方法を解説します。さらに、年・月・日それぞれの差を正確に算出するテクニックを紹介します。
DATEDIF関数は、指定した2つの日付の間の期間を、年・月・日のいずれかの単位で計算できる関数です。例えば、従業員の勤続年数や、プロジェクトの経過日数などを算出する際に役立ちます。しかし、Excelのバージョンによっては関数の一覧に表示されないため、存在を知らない、あるいは使い方がわからないという方も少なくありません。本記事では、このDATEDIF関数の基本的な使い方から、応用的な活用方法までを網羅的に解説します。
【要点】DATEDIF関数の入力方法と日付算出テクニック
- DATEDIF関数: 関数一覧に表示されない「隠し関数」であり、直接セルに入力して使用する。
- 年単位の算出 (“Y”): 2つの日付の間の満年数を計算する。
- 月単位の算出 (“M”): 2つの日付の間の満月数を計算する。
- 日単位の算出 (“D”): 2つの日付の間の満日数を計算する。
- 年と月 (“YM”): 満年数を計算した残りの月数を算出する。
- 年と日 (“YD”): 満年数を計算した残りの日数を算出する。
- 月と日 (“MD”): 満年数と満月数を計算した残りの日数を算出する。
ADVERTISEMENT
目次
DATEDIF関数が関数一覧に表示されない理由
DATEDIF関数がExcelの関数一覧に表示されない主な理由は、Microsoftが公式にサポートしていない「非推奨」の関数であるためです。この関数は、互換性のために古いバージョンから引き継がれているものの、将来的に削除される可能性があるため、意図的に一覧から除外されています。しかし、現在でも多くの場面で実用的な計算ができるため、利用価値は高いままです。
この関数は、Microsoft Excel 4.0(1992年リリース)で導入されたもので、Excel 97以降のバージョンでも互換性のために残されています。しかし、新しい関数(例: YEARFRAC関数)が登場したこともあり、MicrosoftはDATEDIF関数を積極的に推奨していません。そのため、関数アシスタント(数式タブの「関数挿入」)から検索しても見つからないのです。
DATEDIF関数の基本的な構文と入力方法
DATEDIF関数は、以下の構文で使用します。関数一覧にないため、セルに直接「=DATEDIF(」と入力して引数を指定する必要があります。
- 構文
=DATEDIF(開始日, 終了日, 単位) - 引数の説明
- 開始日: 期間の計算を開始する日付を指定します。セルの参照または日付のシリアル値、あるいはDATE関数で指定します。
- 終了日: 期間の計算を終了する日付を指定します。開始日以降の日付である必要があります。
- 単位: 計算する期間の単位を指定する文字列です。以下のいずれかを入力します。
- “Y”: 2つの日付の間の満年数
- “M”: 2つの日付の間の満月数
- “D”: 2つの日付の間の満日数
- “YM”: 満年数を計算した残りの月数
- “YD”: 満年数を計算した残りの日数を算出
- “MD”: 満年数と満月数を計算した残りの日数を算出
例えば、A1セルに開始日、B1セルに終了日が入っている場合、C1セルに「=DATEDIF(A1,B1,”Y”)」と入力すれば、2つの日付の間の満年数が計算されます。このように、関数名と引数を直接記述することで利用できます。
年単位の期間を算出する (“Y”)
DATEDIF関数で最も一般的に使用されるのは、2つの日付の間の満年数を計算する”Y”です。これは、例えば勤続年数や年齢を計算する際に使用できます。開始日と終了日を指定し、単位に”Y”を指定するだけで、満年齢や満勤続年数を正確に算出できます。
例えば、2020年4月1日(A1セル)から2023年10月26日(B1セル)までの満年数を計算する場合、C1セルに「=DATEDIF(A1,B1,”Y”)」と入力します。この場合、結果は「3」となります。これは、2023年10月26日時点では、まだ4年目に到達していないことを意味します。
ADVERTISEMENT
月単位の期間を算出する (“M”)
“M”を指定すると、2つの日付の間の満月数を計算できます。これは、例えばプロジェクトの進行状況や、ローン返済期間などを月単位で把握したい場合に役立ちます。”Y”と同様に、開始日と終了日を指定し、単位に”M”を入力します。
上記の例(A1: 2020/4/1, B1: 2023/10/26)で、月単位の期間を計算するには、C1セルに「=DATEDIF(A1,B1,”M”)」と入力します。この場合、結果は「42」となります。これは、開始日から終了日までの満月数が42ヶ月であることを示しています。
日単位の期間を算出する (“D”)
“D”を指定すると、2つの日付の間の満日数を計算できます。これは、イベントまでの日数や、作業期間の日数を正確に知りたい場合に便利です。計算方法は”Y”や”M”と同様で、開始日と終了日を指定し、単位に”D”を入力します。
同じ例(A1: 2020/4/1, B1: 2023/10/26)で、日単位の期間を計算するには、C1セルに「=DATEDIF(A1,B1,”D”)」と入力します。この場合、結果は「1302」となります。これは、開始日から終了日までの満日数が1302日であることを示しています。
年と月を同時に算出する (“YM”)
“YM”を指定すると、満年数を計算した残りの月数を算出できます。これは、年齢を「〇歳〇ヶ月」のように表示したい場合に便利です。たとえば、3年6ヶ月経過した場合、「Y」では「3」、「M」では「42」となりますが、「YM」では「6」と表示されます。
例(A1: 2020/4/1, B1: 2023/10/26)で、満年数を計算した残りの月数を算出するには、C1セルに「=DATEDIF(A1,B1,”YM”)」と入力します。この場合、結果は「6」となります。これは、満3年が経過した後の残りの月数が6ヶ月であることを意味します。
年と日を同時に算出する (“YD”)
“YD”を指定すると、満年数を計算した残りの日数を算出できます。これは、例えばある年の誕生日からの経過日数を計算したい場合などに使えます。ただし、この単位は、うるう年を考慮せずに単純な日数を計算するため、正確な経過日数とは異なる場合があります。
例(A1: 2020/4/1, B1: 2023/10/26)で、満年数を計算した残りの日数を算出するには、C1セルに「=DATEDIF(A1,B1,”YD”)」と入力します。この場合、結果は「178」となります。これは、満3年が経過した後の残りの日数が178日であることを示しています。
月と日を同時に算出する (“MD”)
“MD”を指定すると、満年数と満月数を計算した残りの日数を算出できます。これは、例えば「〇年〇ヶ月〇日」のように、期間をより詳細に表示したい場合に役立ちます。この単位は、月の日数(30日、31日、28日、29日)を考慮しないため、年や月を無視した単純な日数の差を計算します。
例(A1: 2020/4/1, B1: 2023/10/26)で、満年数と満月数を計算した残りの日数を算出するには、C1セルに「=DATEDIF(A1,B1,”MD”)」と入力します。この場合、結果は「25」となります。これは、満3年と満6ヶ月が経過した後の残りの日数が25日であることを意味します。
DATEDIF関数で「〇年〇ヶ月〇日」を表示するテクニック
DATEDIF関数を組み合わせて、期間を「〇年〇ヶ月〇日」という形式で表示するテクニックは非常に実用的です。これは、年齢計算や勤続年数の表示などでよく利用されます。各単位(年、月、日)を個別に計算し、それらを文字列として連結することで実現します。
例えば、A1セルに開始日、B1セルに終了日がある場合、以下の数式をC1セルに入力します。
=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"&DATEDIF(A1,B1,"MD")&"日"
この数式は、まずDATEDIF関数で満年数(“Y”)、残りの月数(“YM”)、残りの日数(“MD”)をそれぞれ計算します。そして、計算結果の数値と、単位を表す文字列(“年”、”ヶ月”、”日”)をアンパサンド(&)で連結して、一つの文字列として表示します。
DATEDIF関数利用時の注意点とエラー
DATEDIF関数は便利ですが、いくつか注意すべき点があります。最も一般的なのは、開始日が終了日よりも後の日付になっている場合です。この場合、DATEDIF関数は「#NUM!」エラーを返します。必ず開始日を開始日セルに、終了日を終了日セルに入力し、日付の順序が正しいことを確認してください。
また、単位の指定も重要です。存在しない単位(例: “YY”や”MM”など)を指定した場合も「#NUM!」エラーとなります。使用できる単位は “Y”, “M”, “D”, “YM”, “YD”, “MD” の6種類のみです。これらの単位を正確に理解し、目的に応じて使い分けることが、正確な計算結果を得るための鍵となります。
さらに、DATEDIF関数はMicrosoftが非推奨としているため、将来のExcelバージョンでサポートされなくなる可能性もゼロではありません。もし、より長期的な互換性や、公式サポートを重視する場合は、YEARFRAC関数や、DATE関数、YEAR関数、MONTH関数、DAY関数などを組み合わせた代替計算方法も検討すると良いでしょう。
DATEDIF関数とYEARFRAC関数の比較
DATEDIF関数は期間を年・月・日の単位で算出しますが、YEARFRAC関数は期間を年単位の小数で算出します。YEARFRAC関数は、より詳細な期間計算や、金融計算などで利用されることが多いです。
| 項目 | DATEDIF関数 | YEARFRAC関数 |
|---|---|---|
| 主な用途 | 満年数、満月数、満日数、またはそれらの組み合わせ | 年単位の小数(例: 3.5年)での期間算出 |
| 単位 | “Y”, “M”, “D”, “YM”, “YD”, “MD” | 基数(小数計算の基準となる日数)を指定可能(例: 0, 1, 2, 3, 4) |
| 関数一覧 | 非表示(直接入力が必要) | 表示 |
| 互換性 | 古いバージョンとの互換性のため存在 | 新しいバージョンで推奨 |
| 計算例(2020/4/1~2023/10/26) | “Y”で3、”M”で42、”D”で1302 | 基数0(30日/月、365日/年)で約3.57年 |
どちらの関数を使用するかは、目的に応じて選択してください。勤続年数や年齢など、満了した期間を整数で把握したい場合はDATEDIF関数が適しています。一方、年単位の端数まで含めた期間を小数で扱いたい場合はYEARFRAC関数が便利です。
まとめ
DATEDIF関数はExcelの関数一覧に表示されませんが、直接入力することで、2つの日付の間の満年数、満月数、満日数を正確に算出できます。”Y”、”M”、”D”といった単位指定を組み合わせることで、年齢や勤続年数を「〇年〇ヶ月〇日」といった形式で表示することも可能です。本記事で解説した入力方法と算出テクニックを習得すれば、日付計算の幅が大きく広がります。次回は、これらの関数を応用して、プロジェクトの期日管理や、顧客の契約更新時期の把握などに活用してみましょう。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
