- ベストアンサー
エクセルで年、月をカウントする
皆さんこんにちは。 エクセルに関して2つの質問があります。 【1】 A B 1 山田 2003/10/5 2 佐藤 2003/11/6 3 鈴木 2005/7/22 4 岡田 2006/2/9 5 松本 2006/4/4 とあるとき 2003年のセルはいくつあるか? ~ 2006年のセルはいくつあるか? という年別での個数を C1 に出したいのです。 日付の表示はyyyy/mm/ddでお願いします。 また 2003年1月のセルはいくつあるか? ~ 2003年2月のセルはいくつあるか? など月別も D1 に出したいです。 C1、D1にどんな数式を入れればカウントできるでしょうか? 【2】 上記の場合、B列に並ぶyyyy/mm/ddの中から『オートフィルタ』を使い 2003年をすべて 2003年1月をすべて を出すとき、「オプションの抽出条件の指定」は 何を指定すればよいのでしょうか? 解法をご教示ください。マクロは分かりません。 どうぞよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
【1】2006年の個数をカウント =SUMPRODUCT((TEXT(A1:A100,"YYYY")="2006")*1) または =SUMPRODUCT((YEAR(A1:A100)=2006)*1) 2006年2月の個数をカウント =SUMPRODUCT((TEXT(A1:A100,"YYYY/MM")="2006/02")*1) =SUMPRODUCT((YEAR(A1:A100)=2006)*(MONTH(A1:A100)=2)*1)
その他の回答 (2)
- siddhaartha
- ベストアンサー率25% (45/175)
【1】 年毎の個数:[=COUNTIF(B:B,">=2003/01/01")-COUNTIF(B:B,">2004/01/01")] 月毎の個数:[=COUNTIF(B:B,">=2003/10/01")-COUNTIF(B:B,">2003/11/01")] 2003年の場合、2003/01/01以上の個数から2004/01/01以上の個数を引けば 2003年の個数が出ますよね。 【2】 上記と同様の考え方です。2003年を出すならば [2003/01/01 以上] AND [2004/01/01 より小さい] です。 月は最終日がまちまちなので「より小さい」にしています。
お礼
siddhaarthaさん、迅速なご回答ありがとうございます。 COUNTIFの使い方が大変勉強になりました。 また「個数を引いて出す」というのは目から鱗です。 恥ずかしながら気づきませんでした。 『オートフィルタ』の「より小さい」でもひざを打ちました。 まだまだ勉強不足です。 お世話になりました。
- mshr1962
- ベストアンサー率39% (7417/18945)
(1) =COUNTIF(範囲,"<"&"2003/2/1")-COUNTIF(範囲,"<"&"2003/1/1") 又は =SUM(IF((範囲>="2003/1/1"*1)*(範囲<="2003/1/31"*1),1)) としてCtrl+Shift+Enterで配列数式とする。 又は =SUM(IF(TEXT(範囲,"yyyymm")="200301",1)) としてCtrl+Shift+Enterで配列数式とする。 ※年別の場合は期間を1/1~12/31になるようにすればOK TEXT関数の場合は=SUM(IF(TEXT(範囲,"yyyy")="2003",1)) TEXT関数の変わりにYEAR関数で数値の年度と比較でもOK ※種類が多い場合は変に関数使うより「データ」「ピボットテーブル」で「日付」をグループ化したほうが楽ですが... (2) 年の場合「2003/1/1」「以上」And 「2003/12/31」「以下」 月の場合「2003/1/1」「以上」And 「2003/1/31」「以下」 もっとも空いてる列に =TEXT(日付のセル,"yyyymm") としとけば単純に抽出できますが...
お礼
mshr1962さん 迅速で解りやすいご回答ありがとうございます。 COUNTIFやSUMでいろいろ悩んだのですが、これほどの多くの解法があったのですね。 まだまだ勉強不足です。 『オートフィルタ』の使い方は目から鱗です。 まったく気づきませんでした。お恥ずかしい・・・ お世話になりました。
お礼
zap35さん、迅速なご回答ありがとうございます。 =SUMPRODUCT((YEAR(A1:A100)=2006)*1) =SUMPRODUCT((TEXT(A1:A100,"YYYY/MM")="2006/02")*1) でうまくいきました。 SUMPRODUCTの使い方も初めて知り大変勉強になりました。 お世話になりました。