- ベストアンサー
エクセルで、ある期間の日付のカウントのやりかた
例 A列に 平成16年1月1日 平成17年5月1日 平成 年 月 日 平成17年12月31日 平成18年4月2日 … と日付と文字が入力されているとします。 A列の中に平成17年4月1日から平成18年3月31日の期間に含まれる日付がいくつあるかをカウントしたいのです。 この期間をあとで変えられるようにしたいので、平成17年4月1日はB1のセルに平成18年3月31日はB2のセルにそれぞれ入力して、リンクを張った形でカウントする数式を作りたいのです。 わかりにくい説明ですがよろしくご教示願います。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
=SUMPRODUCT((A1:A100>=B1)*(A1:A100<=B2))
その他の回答 (4)
- vista77
- ベストアンサー率57% (8/14)
1.EXCELでは、セルに年号を入力すると、通常はそれが自動的にシリアル値に変換されてシリアル値として保持されます。シリアル値とは日付けを1900年1月1日を1とした連続した数値で表したもので、たとえば平成17年1月1日なら38353になります。 2.このため、入力した年号の値は、通常の数値と同じように加減したりカウントしたりすることができます。 3.具体的には、検索対象となる日付けがA1からA6、検索条件となる期間の初日がB1、末日がB2に入力されているとすると、次のようにします。 (1)C1に =IF(A1>=$B$1,IF(A1<=$B$2,1,0),0) と入力します。 (2)これでA1の日付けがB1以上B2以下の場合は1、そうでない場合は0がC1に返されます。 (3)C1のセルをコピーして、C2からC6の範囲に貼り付けます。 (4)C7に =SUM(C1:C6)と入力すれば、それが答えになります。 4.ただし、A1~A6、B1~B2に入力されている値が文字列の場合は、文字としての日付けをDATEVALUEという関数を使ってシリアル値に変換する手続きが必要です。その場合C1には、=IF(DATEVALUE(A1)>=DATEVALUE($B$1),IF(DATEVALUE(A1)<=DATEVALUE($B$2),1,0),0)と入力することになります。
お礼
日付およびカウントの仕方につきまして詳細な説明を頂きありがとうございます。今後ともご指導願います。
- keirika
- ベストアンサー率42% (279/658)
No.2です 補足します 日付は『文字』として入力するのではなく、『日付け』として入力し、 セルの書式設定で質問の中にあるような日付けの表示(平成17年5月1日)にしてください。
- keirika
- ベストアンサー率42% (279/658)
以下のサイトが参考になれば良いのですが・・・
お礼
大変参考になりました。ありがとうございます。
- sasuga2000
- ベストアンサー率41% (7/17)
DAYS360関数を使用してみては?
お礼
回答ありがとうございます。調べて試してみます。
お礼
上記数式をもとにカウントすることができました。 ありがとうございます。