主にMS Office関係のチップスのページです。画面のショットはOffice2010ですが、なるべくVista,Office2007以前でも操作が可能なように作成してあります。
DATEDIF関数は開始時点から終了時点までの経過日数を計算するものです。
・経過した年数を返す場合は DATEDIF(開始年月日,終了年月日,"Y")
・経過した 1 年未満の月数を返す場合は DATEDIF(開始年月日,終了年月日,"YM")
・経過した 1 月未満の日数を返す場合は DATEDIF(開始年月日,終了年月日,"MD")
DATEDIF関数は、なぜか「関数の挿入」ダイアログ ボックスには表示されません。インストールされたEXCELのヘルプで検索しても出ませんでした。
下図の場合、セルE1に関数 =TODAY() を入れ、D列に生年月日から今日の時点での年齢を求めたものです。(表示されている関数はセルD4のものです)
下図も同様に、セルE1に関数 =TODAY() を入れ、E4に生年月日から今日の時点での年齢を、○年○か月と表示したものです。このように、関数に&と"で囲んだ文字をつなげて表示することができます。
*EXCEL2007の場合、不具合があって、下記条件では、正常な値よりも 113 多い値が表示されます。(以下Microsoftのページより抜粋)
Excel 2007 (SP3) で DATEDIF 関数の unit 属性に日数差を戻り値とする "YD"、もしくは "MD" を設定し、データの終了日 (end_date) に下記の全ての条件に合致するデータを入力した場合
・閏年 (2000年、 2004年、 2008 年、 2012年 など)
・1 月
・開始日 (start_date) に入力したデータの日付よりも前の日付
不具合の例
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"))
参考:MicrosoftのExcel 2007 で DATEDIF 関数で指定する~のページ。