- ベストアンサー
2017年4月から2018年3月をカウントする
セルには2017/4や2018/2などと入力しましたが、 あらためて見ると2017/4/1や20182/1となっている。 表示は2017年4月や2018年2月と表示されています。 これらのデータが入力されているある範囲の中から、2017年4月~2018年3月までの数が何個あるか数えたいのですが、どうすればよいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
データが入力されているセル範囲が、A1~A10の場合の例ですが、以下の式でいかがでしょう。 =COUNTIFS(A1:A10,">=2017/4/1",A1:A10,"<=2018/3/31")
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
こういう質問が出てくるのは質問者のエクセルの経験不足と勉強不足とMSエクセルの日付に対する特殊な考え方が原因です。 エクセルの日付のデータは、1900年1月1日から、考えている日付までの実際の日数で、この整数値を、セルの値として設定し保持しています。日付シリアル値という考えです。WEBで日付シリアル値で照会して勉強! シートに対し、どういうデータを入力すれば、エクセルは日付として扱うのかは 書き上げると結構長くなるのでらくす絡子が、質問者は勉強のこと。 その中の1つに、年月までしか入力しないで、データをEnterで確定すると、その月の1日の日付(の日付シリアル値)を設定してしまう。 >あらためて見ると2017/4/1や20182/1となっている。 というのは、エクセルを使う経験を少し積んで、気づくのが遅すぎる。 ーー エクセルの関数では日付を指定するのは、すべてシートのセルで、日付シリアルの入ったセル番地か、”2017/7/7”のようなリテラル値(具体的な値のものを式内に書く)なのです。 ーー 人間の感覚では、2月から4月と考えますが、エクセル的には、この指定はできず、何年2月1日から何年4月30日までと指定しないとなりません。 FirstからEndという指定もありません。 ーー だから仕組みの理解から言えば、今年の2月1日は=DATE(2017,2,1)とセルに 入れて、表示形式を数値にすると、42767となり、4月30日は42855ですから 2月から4月までのという条件は、42767とイコール大なり、でかつ42855 とイコール小なりの条件を指定しなければなりません。 >2月から4月と、いうデータを関数に入れて、期間判定をする方法はありません。VBAなどで特別に作れば、話は別です。 また少数ながや月の数字を取り上げるMONTH関数や、日付の間の月数を返す =DATEDIF(D5,E5,"m")のような関数もありますが、期間判定の中の月数指定にはつかえない。 ーー >2017年4月~2018年3月までの数が何個あるか数えたいのですが ここからは条件付きの該当個数を勘定する関数が使える。 条件が2つになるのでCOUNTIFS(Sつき)の方を使い、引数にある、第1条件と第2条件はAND(且つ)の関係でカウントすることが決まっているので、該当が絞られるわけです。 2-4月までの例です。 =COUNTIFS(A1:A12,"<=2017/4/30",A1:A12,">=2017/2/1") 日付リテラルの表し方の””、 >=などの比較演算子を””””の中の含めることとその位置など、落とし穴がいっぱいあるので難しい。 ーー 参考 Excelで関数の中に日付を入れたい https://oshiete.goo.ne.jp/qa/3948589.html
お礼
- Chiquilin
- ベストアンサー率30% (94/306)
=FREQUENCY(A:A,DATE({2018,2017},4,1)) でいいと思いますが オーソドックスに COUNTIFSで計算しても いいと思います。
お礼
回答ありがとうございます。
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
A1に2017/4/1、B1に2018/2/1と日付が入力されている場合 =DATEDIF(A1,B1,"m")+1 と言う式で「11」が求められます。
お礼
回答ありがとうございました。 質問が言葉足らずですみませんでした。
お礼
回答ありがとうございました。 うまくいきました。