|
日付の計算 |
|
|
|
|
|
|
|
|
|
年リスト |
|
●簡単な日付の計算 |
|
|
|
1991 |
|
セルにそれぞれ年月日を入力し、その差を計算させ、セル書式を「数値」に設定します。 |
|
1992 |
|
年月日1 |
年月日2 |
表示結果 |
数式 |
|
1993 |
|
2005/8/10 |
2005/2/15 |
176 |
=B6-C6 |
|
1994 |
|
|
|
1995 |
|
●ある年が閏年(うるうどし)かどうかを計算する方法 |
|
1996 |
|
1997 |
|
該当する月の翌月の 1 日から該当する月の 1
日を引き算するという方法。 |
|
1998 |
|
=DATE(2008,3,1)-DATE(2008,2,1) |
29 |
→DATE関数 |
|
1999 |
|
|
|
2000 |
|
DATE関数で日にちの指定を「0」にすることにより、前月の最終日を表示する方法。 |
|
2001 |
|
=DATE(2008,3,0) |
|
2008/2/29 |
|
2002 |
|
|
|
|
|
2003 |
|
調べたい年をセルに記入し、そのセルを参照するようにすると入力が楽です。 |
|
2004 |
|
調べたい年 |
2010 |
=DATE(C17,3,0) |
2010/2/28 |
|
2005 |
|
入力する値をリスト化することも可能です。 |
|
|
2006 |
|
年リスト |
1992 |
=DATE(C19,3,0) |
1992/2/29 |
|
2008 |
|
2009 |
|
EOMONTH 関数(アドイン関数)を使った方法。 |
|
→EOMONTH関数 |
|
2010 |
|
=DAY(EOMONTH(DATE(2006,2,1),0)) |
28 |
→DAY関数 |
|
2011 |
|
|
2013 |
|
●今年になってから何日経過したかを計算する方法 |
|
2014 |
|
|
|
2015 |
|
今日の日付(TODAY関数)から今年の 1 月 1 日の値を引きます。 |
→TODAY関数 |
|
2016 |
|
=TODAY()-DATE(YEAR(TODAY()),1,1) |
100 |
→YEAR関数 |
|
|
この計算方法は、YEAR関数がTODAY関数から今年の「年」の値を取得し、DATE関数が取得した年と指定した月「1」、日「1」の引数から「2005/1/1」の値を持つことになります。今日が 1 月 1 日の場合には、経過日数が
0 日であり、1 月 2 日になってから 1 日経過したということになります。 |
|
|
|
|
|
|
|
|
次の数式でも計算できます。 |
|
|
=TODAY()-DATE(2005,1,1) |
2291 |
|
|
|
|
|
|
|
|
|
次のようにセルにそれぞれ日付を入力し、その計算式を別のセルに記述します。 |
|
|
2011/4/11 |
2005/1/1 |
2291 |
セル書式「数値」 |
|
|
B36=TODAY() |
|
=B36-C36 |
|
|
|
|
|
|
|
|
|
この計算方法は「片端
(かたはし) 落ち」といい、起算日または満期日のどちらかを数えないというものであり、日付・日数計算では一般的なものです。 |
|
|
|
|
|
●今月になってから何日経過したかを計算する方法 |
|
|
|
今日の日付(TODAY関数)から今月 1 日の値を引きます。 |
→MONTH関数 |
|
|
=TODAY()-DATE(YEAR(TODAY()),MONTH(TODAY()),1) |
10 |
|
|
|
DATE関数の引数は、そのネストであるYEAR関数とMONTH関数によりTODAY関数からそれぞれ年と月の値を取得します。日は「1」と指定しています。今日を「2005/2/16」とするとDATE関数は「2005/2/1」となり、「2005/2/16-2005/2/1=15」の計算が行われます。 |
|
|
|
|
|
|
|
|
|
|
|
|
この計算方法は「片端
(かたはし) 落ち」といい、起算日または満期日のどちらかを数えないというものであり、日付・日数計算では一般的なものです。 |
|
|
|
|
|
●来年まであと何日かを計算する方法 |
|
|
|
来年の 1 月 1 日から今日の値を引きます。 |
|
|
=DATE(YEAR(TODAY())+1,1,1)-TODAY() |
265 |
|
|
|
|
|
|
|
セルの参照による計算 |
|
|
|
|
2006/1/1 |
2011/4/11[1] |
(1926) |
=B60-C60 |
|
|
|
|
|
|
|
|
|
|
|
|
●目的の日まであと何日かを計算する |
|
|
|
本日の日付 |
2011/4/11[2] |
|
|
目的の日 |
2006/1/1 |
|
|
|
(1926) |
|
|
=DATE(YEAR(C66),MONTH(C66),DAY(C66))-TODAY() |
|
|
|
|
|
|
●22世紀まであと何日かを計算する |
|
|
|
|
|
|
=(DATE(2101,1,1)-C65) &
"日" |
|
|
22世紀まであと |
32772日 |
|
|
|
|
|
|
|
●誕生日から今日まで何年何ヶ月何日経過したかを算出する方法 |
|
|
|
DATEDIF 関数を使用する ことで求めることができます。 |
→DATEDIF関数 |
|
|
誕生日 |
終了日(今日) |
経過年月日 |
|
|
|
2002/8/1 |
2011/4/11 |
8年8ヶ月10日 |
|
|
|
=DATEDIF(B79,C79,"Y")&"年"&
DATEDIF(B795,C79,"YM") & "ヶ月" &
DATEDIF(B79,C79,"MD") & "日" |
|
|
|
|
|
|
|
|
|
●8桁の数値を日付を表すシリアル値に変換するには |
|
|
|
年数 4 桁、月数 2 桁、日数 2 桁という 8 桁の数値 (例、
20050201)を変換させます。 |
|
|
=DATE(INT(20050201/10000),MOD(INT(20050201/100),100),MOD(20050201,100)) |
|
|
|
2005/2/1 |
|
|
セルを参照して計算式を記述することも可能です。 |
|
|
セル値 |
20050201 |
2005/2/1 |
|
|
|
|
|
|
|
前提 |
|
|
1 桁台の月数や日数
(1 〜 9 月/日) の場合には、「 01 」というように数字の前に ゼロが入って必ず 8 桁になっていること。 |
|
|
|
|
|
|
|
|
|
|
方法 |
|
|
8
桁の数値をシリアル値にするためには、年数と月数と日数に分ける必要があります。 |
|
|
年数を算出方法 8 桁の数値を 10000 で割った商の値 |
|
|
月数の算出方法 8 桁の数値を 100 で割った商の整数部分を 100
で割った余りの値 |
|
|
日数の算出方法 8 桁の数値を 100 で割った余りの値 |
|
|
|
|
|
=DATE(INT(8 桁の数値/10000),MOD(INT(8
桁の数値/100),100),MOD(8 桁の数値,100)) |
|
|
|
◇INT関数 |
指定した数値を超えない最大の整数を返します。 |
|
|
書式 |
INT(数値) |
|
|
◇MOD関数 |
数値を除数で割ったときの剰余を返します。 |
|
|
書式 |
MOD(数値,除数) |
|
|
|
●6桁の数値を日付を表すシリアル値に変換するには |
|
|
|
年数 2 桁、月数 2 桁、日数 2 桁という 6 桁の数値 (例、
980503)を変換させます。 |
|
|
=DATE(INT(980503/10000),MOD(INT(980503/100),100),MOD(980503,100)) |
|
|
1998/5/3 |
|
|
セルを参照して計算式を記述することも可能です。 |
|
|
セル値 |
980503 |
1998/5/3 |
|
|
|
しかし同じ6桁の数値でも「050503」のような場合はどうでしょうか? |
|
|
=DATE(INT(050503/10000),MOD(INT(050503/100),100),MOD(050503,100)) |
|
|
1905/5/3 |
|
|
実際に記述される数式は、先頭の「0」を取ったものになります。 |
|
|
=DATE(INT(50503/10000),MOD(INT(50503/100),100),MOD(503,100)) |
|
|
また、年の商が「5」となるため、2005年ではなく、1905年となってしまいます。 |
|
|
これは、DATE関数の機能です。 |
→Excelでの2桁年の解釈 |
|
|
|
|
|
2000年以降を表示させるには次のように年に「2000」を加えた数式にします。 |
|
|
=DATE(INT(050503/10000+2000),MOD(INT(050503/100),100),MOD(050503,100)) |
|
|
2005/5/3 |
|
|
|
|
|
●TEXT関数を使った日付の計算 |
|
|
|
|
|
TEXT関数を使っても日付計算ができます。 |
|
→TEXT関数 |
|
|
|
|
|
・今日は今年になってから何日目か |
|
|
=TEXT(NOW(),"yyyy/m/d")-TEXT("2005/1/1","yyyy/m/d") |
2291 |
|
|
|
・来年まで残り何日か |
|
|
=TEXT("2006/1/1","yyyy/m/d")-TEXT(TODAY(),"yyyy/m/d") |
-1926 |
|
|
|
|
|
|
|
|
|