Excel 指定期間内の年数、月数、日数を取得(DATEDIF関数)
DATEDIF関数は二つの日付の間の月数、月数、日数を計算する関数です。
この関数はLotus 1-2-3との互換性のために残されている関数で
「関数の挿入」では一覧に表示されない関数です。
バグもあり今後、修正する予定がありません。
つまりサポートされない関数のため使えなくなる可能性があります。
そのため可能な限り使用しない方がよいでしょう。
(この関数は便利なのでどうにかしてほしい)
とはいえスピルが地味にサポートされているので
まったく手をつけないわけでもなさそうです。
仕様
=DATEDIF(開始日,終了日,単位)
引数 | 省略時の値 | 説明 |
---|---|---|
開始日 | 省略不可 | 期間を取得する開始日を指定。 |
終了日 | 省略不可 | 期間を取得する終了日を指定。 開始日より過去の日付を指定すると#NUM!エラー |
単位 | 省略不可 | 計算方法を文字列で指定(後述) |
単位の仕様
値 | 内容 |
---|---|
Y | 期間全ての年数 |
M | 期間全ての月数 |
D | 期間全ての日数 |
YM | 年月を無視した月数 |
YD | 年月を無視した日数 |
MD | 年月を無視した日数 ※修正予定なしのバグあり |
代替手段
全ての機能を代替出来ませんが、下記の関数を使用します。
日数が違う月同士の計算や閏年の扱いを自分で調整できる利点もあります。
2つの日付の間の日数を取得(DAYS関数)
DAYS関数で月を跨いで日付を計算する場合に使用します。(単位:D)
日時データより年月日時分秒を抽出する関数(YEAR、MONTH、DAY、HOUR、MINUTE、SECOND)
各関数で年数や月数を計算する場合に使用します。(単位:Y、YM)
単位:Mは年数を12で掛ける調整が必要です。
年、月、日を指定して日付(シリアル値)を取得(DATE関数)
DATE関数で年や月を合わせてからDAYS関数で計算します。(YDとMD)
使用例
DATEDIF関数を使用した結果の例です。
スピルを利用する方法とメリット
Office365やExcel2019以降ではスピルという形式で記述可能です。
これは複数セルに数式をコピーする場合に便利な機能です。
スピルの利用には何れかの引数を複数セルの範囲で指定します。
数式を入力するのは最初の一つのセルですが、
引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。
スピルを利用することで今回の例では、
F3セルに入力するだけでよいため(F4以降にコピーペーストが不要)
以下のメリットがあります。
- 入力の手間が少ない(数式のセルが多いほど効果が大きい)
- 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
- 絶対参照が不要
- 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。
Excelを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。
Word-A4サイズ:1,400ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方、関数の解説(140種類)、
頻出テクニックと実用例(109種類)、
XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。