Excel DATEDIF関数

DATEDIF関数は開始時点から終了時点までの経過日数を計算するものです。
・経過した年数を返す場合は DATEDIF(開始年月日,終了年月日,"Y")
・経過した 1 年未満の月数を返す場合は DATEDIF(開始年月日,終了年月日,"YM")
・経過した 1 月未満の日数を返す場合は DATEDIF(開始年月日,終了年月日,"MD")

DATEDIF関数は、なぜか「関数の挿入」ダイアログ ボックスには表示されません。インストールされたEXCELのヘルプで検索しても出ませんでした。
下図の場合、セルE1に関数 =TODAY() を入れ、D列に生年月日から今日の時点での年齢を求めたものです。(表示されている関数はセルD4のものです)
DATEDIFで年数を求めた図
下図も同様に、セルE1に関数 =TODAY() を入れ、E4に生年月日から今日の時点での年齢を、○年○か月と表示したものです。このように、関数に&と"で囲んだ文字をつなげて表示することができます。
DATEDIFで年数と月を求めた図

*EXCEL2007の場合、不具合があって、下記条件では、正常な値よりも 113 多い値が表示されます。(以下Microsoftのページより抜粋)
Excel 2007 (SP3) で DATEDIF 関数の unit 属性に日数差を戻り値とする "YD"、もしくは "MD" を設定し、データの終了日 (end_date) に下記の全ての条件に合致するデータを入力した場合
・閏年 (2000年、 2004年、 2008 年、 2012年 など)
・1 月
・開始日 (start_date) に入力したデータの日付よりも前の日付
不具合の例
DATEDIFで不具合の図
Microsoftのページのとおりに、関数を下記の様に変えて対策した例
IF(AND(INFO("release")="12.0",MONTH(DATE(YEAR(B1),2,29))=2,MONTH(B1)=1,DAY(A1)
>DAY(B1)),DATEDIF(A1,B1,"YD")-113,DATEDIF(A1,B1,"YD"))
DATEDIFで対策の図
参考:MicrosoftのExcel 2007 で DATEDIF 関数で指定する~のページ。


Office関連チップス一覧へ戻る

ツイート
このエントリーをはてなブックマークに追加
inserted by FC2 system