- ベストアンサー
エクセルで日付の判定を行いたい
エクセルで特定の日時の期間内でのカウントを行っているのですが、別のセルに年・月・日を記入する形をとって、各セルの数字を判定して、1月のデータだから、1月にプラス1という計算を行っていますがスマートではありません。 同じセル内で2013/1/1と書かれてもこれは1月のデータだと判定する方法はありませんか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>条件が追加されまして、1/21から2/20までが1月のカウントという少し特殊なものになってしまいました。 例えば、元データとなる日付が入力れているセルがA1セルであるものとしますと、1/21から2/20までが1月度であると判定するとして、IF関数の判定式の部分で使うのでしたら、 =IF(MONTH(A1-20)=1,[真の場合],[偽の場合]) となります。 又、2013年の1月度であるか否かで、IF関数の結果を左右させる場合には、 =IF(TEXT(A1-20,"yyyy/m")="2013/1",[真の場合],[偽の場合]) となります。 又、例えばA1~A99の範囲内に2013/1/21から2013/2/20までの範囲内に収まる日時が入力されているセルの個数をカウントするのでしたら、 =COUNTIFS(A1:A99,"<2013/2/21",A1:A99,">=2013/1/21") 或いは =COUNTIF(A1:A99,"<2013/2/21")-COUNTIF(A1:A99,"<2013/1/21") となります。(前の方の条件を"<2013/2/20"にしてはいけませんし、もしも、カウントの対象となるデータが例えば「1/20 8:30」等の様に、時刻のデータも含まれているデータである場合には、"<=2013/2/20"とするのも駄目です) 又、SUMIF関数などで、例えば1行目から99行目にかけての行範囲において、A列に2013/1/21から2013/2/20までの範囲内に収まる日時が入力されている行と同じ行に入力されている、B列の数値の合計を求める、という様な場合には、 =SUMIFS(B1:B99,A1:A99,"<2013/2/21",A1:A99,">=2013/1/21") 或いは =SUMIF(A1:A99,"<2013/2/21",B1:B99)-SUMIF(A1:A99,"<2013/1/21",B1:B99) となります。
その他の回答 (5)
- aokii
- ベストアンサー率23% (5210/22062)
スマートではないかもしれませんが、A1セルに2013/1/1と書かれている場合。 =IF(MONTH(A1)=1,1,0)
- mshr1962
- ベストアンサー率39% (7417/18945)
>1/21から2/20までが1月のカウントという少し特殊なものになってしまいました。 =MONTH(日付-20) とか =TEXT(日付-20,"MM") で対応できます。 対応列を作りたくないなら =SUMPRODUCT((MONTH(A1:A5-20)=1)*1) または =SUMPRODUCT((TEXT(日付-20,"MM")="01")*1)
- tom04
- ベストアンサー率49% (2537/5117)
- wtmk9638
- ベストアンサー率0% (0/1)
MONTH関数を使用して月数をチェックできます。
- chonami
- ベストアンサー率43% (448/1036)
MONTH関数で月を取りだすとか、前年のデータも含まれているならYEAR関数で年も取り出してそれも集計基準に入れちゃうとか… 日付を1セルにしてしまうのはいい事だと思います。
補足
素早い回答ありがとうございます。それは日も同時に取り出すことはできますか? 条件が追加されまして、1/21から2/20までが1月のカウントという少し特殊なものになってしまいました。