日付の計算と関数

   
 シリアル値ってなぁ〜に?・・・日付関数を使う前に知っておこう

日付シリアル値とは、1900/1/1を「1」として、2078/12/31「65380」までの間に1つずつ整数を割り付けたものです。と 何かの本に書いてありました。でもこれはエクセル95の参考書に書いてあったことで、エクセル2000では西暦9999年12月31日迄はシリアル値が使用できるようです。ちなみに西暦9999年12月31日は 平成 8011年12月31日です。

要するに

1900/1/1 → 「1」

1900/1/2 → 「2」

2003/1/1 → 「37622」
2003/1/2 → 「37623」 と、 いう事ですね。

セルに日付を入力し、そのセルの上でマウス右クリックしセルの書式設定を選び表示形式タブの中の分類で”数値”を選ぶと入力した日付のシリアル値を表示することが出来ます。

   


 現在の日付が知りたい・・・【使用関数 NOW()】
  A B C D E
1 2011/8/1        
2          
3          
4          
セル”A1”に=NOW()と入力すると現在の日付が表示されます
(2011年8月1日に作成したものとします)
セルの表示形式は「日付」となっていますが
シリアル値にすると・・40756となり
時刻表示にすると・・2011/8/1 0:00:00となります

同じ関数を使っているのにセルの書式設定、表示形式で日付になったり数値になったり紛らわしいです、関数を入力しても思ったような結果が表示されなかった時は、表示形式を確認してみましょう。

   


 3つのセルに数値で振り分けられた年、月、日を1つのセルに日付表示する・・・【使用関数 DATE(年,月,日)】
  A B C D E
1 2011      
2 8 2011/8/1    
3 1      
4          
セル”C2”にDATE(A1,A2,A3)と入力すると
年、月、日が1つにまとまりました
   


 日付から年、月、日を抜き出す・・・【使用関数 YEAR(シリアル値)  MONTH(シリアル値)  DAY(シリアル値) 】
  A B C D E
1

誕生日

  誕生年 1987  
2 1987/8/16   誕生 8  
3     誕生日 16  
4    

誕生日は8月16日だよ、忘れないでね!

セル”D1”に=YEAR(A2)と入力されています
セル”D2”に
=MONTH(A2)と入力されています
セル”D3”に
=DAY(A2)と入力されています
セル”C4”に="誕生日は" & MONTH(A2) & "月" & DAY(A2) & "日だよ、忘れないでね!"と入力されています
   


 曜日が知りたい・・・【使用関数 WEEKDAY(シリアル値,種類) と CHOOSE(インデックス,値1,値2,…)】

=WEEKDAY(シリアル値,1)とすると日曜が1、月曜が2、火曜が3、…と数値で表されるだけなので、CHOOSE関数を使ってこの数値を曜日に変えます

  A B C D
1        
2 1987/8/16   曜日は

3       1987/8/16(日)
セル”D2”に
=CHOOSE(WEEKDAY(A2),"日","月","火","水","木","金","土")
と入力されています

でも、こんな面倒なことをしなくてもエクセルのセルの書式設定にユーザー定義というものがあるから、そこで yyyy/m/d(aaa) と指定すれば関数を使わずに曜日を表示してくれます

セル”D3”は、セル”A3”がリンクされ書式設定を yyyy/m/d(aaa) としています
   


 指定期間内の日数、月数、年数が知りたい (その1)・・・【使用関数 YEAR(シリアル値) と MONTH(シリアル値)】
  A B C D E
1 開始日 1995/1/1 日数 6056
2 終了日 2011/8/1 月数 199
3     年数 16
4          
セル”D1”に=B2-B1と入力されています
セル”D2”に
=(YEAR(B2)-YEAR(B1))*12 + MONTH(B2)-MONTH(B1)と入力されています
セル”D3”に
=YEAR(B2)-YEAR(B1)と入力されています
   


 指定期間内の日数、月数、年数が知りたい (その2)・・・【使用関数 DATEDIF(開始日,終了日,"処理単位") 】

この関数を使用するにはアドイン登録が必要です。
(Excelのメニューバーのツールからアドインを選び、分析ツールにチェックマークを付けOKボタンを押すとアドイン登録が出来ます)

  A B C D E
1 開始日 1995/1/1 日数 6056
2 終了日 2011/8/1 月数 199
3     年数 168
4          
セル”D1”に=DATEDIF(B1,B2,"d")と入力されています
セル”D2”に
=DATEDIF(B1,B2,"m")と入力されています
セル”D3”に
=DATEDIF(B1,B2,"y")と入力されています
   


 年齢が知りたい・・・【使用関数 DATEDIF(開始日,終了日,"処理単位") と INT(数値)】

この関数を使用するにはアドイン登録が必要です。
(Excelのメニューバーのツールからアドインを選び、分析ツールにチェックマークを付けOKボタンを押すとアドイン登録が出来ます)

  A B C D E
1 誕生日   生まれて 8752 日たちました
2 1987/8/16   生まれて 287 ヶ月です
3     年齢は 23 才です
4 年齢と経過月まで出すには 23歳11ヶ月  
5 私が30歳になるのは、いつ? 2017/8/16  
(この関数は2011年8月1日に作成したものとします)
セル”D1”に
=NOW()-A2と入力されています
セル”D2”に
=DATEDIF(A2,NOW(),"m")と入力されています
セル”D3”に
=INT((NOW()-A2-1)/365.25)と入力されています

セル”D4”に=TEXT(DATEDIF(A2,TODAY(),"y"),"0歳;;""""")&TEXT(DATEDIF(A2,TODAY(),"ym"),"0ヶ月;;""""")と入力されています
セル”D5”に
=DATE(YEAR(A2)+30,MONTH(A2),DAY(A2))と入力されています

   


 日付から、その月の1日と、末日と、翌月の1日を算出したい
・・・【使用関数 DATE(年,月,日) とYEAR(シリアル値) と MONTH(シリアル値)】
  A B C D E
1

日付

  その月の1日 1987/8/1  
2 1987/8/16   末日 1987/8/31  
3     翌月の1日 1987/9/1  
4          
セル”D1”に=DATE(YEAR(A2),MONTH(A2),1)と入力されています
セル”D2”に
=DATE(YEAR(A2),MONTH(A2)+1,1)-1と入力されています
セル”D3”に
=DATE(YEAR(A2),MONTH(A2)+1,1)と入力されています
   


 日付から、○○ヶ月後を算出したい・・・【使用関数 EDATE(開始日,月) と EOMONTH(開始日,月)】

この関数を使用するにはアドイン登録が必要です。
(Excelのメニューバーのツールからアドインを選び、分析ツールにチェックマークを付けOKボタンを押すとアドイン登録が出来ます)

  A B C D E
1

日付

5ヶ月後は 2012/1/1  
2 2011/8/1  5ヶ月後の末日は 2012/1/31  
3          
4          
セル”D1”に=EDATE(A2,5)と入力されています
セル”D2”に
=EOMONTH(A2,5)と入力されています


Top