• ベストアンサー

<EXCEL>月別にデータ数をカウントする方法。

以下の表があるとします。 A列   B列 2006/6/1     123  2006/5/1     345 2006/6/13     234     2006/7/24   523 2006/9/12   912 2006/4/3   145 2006/5/5   872 この表から、月毎に、データが何件入力されているかを関数でカウントしたいと思っています。データの内容はランダムで、特に番号などは決まっていません。 C列に4月は何件、5月は何件というように表示したいのですが、日は関係なく月ごとにカウントするにはどのようにすればよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • rin01
  • ベストアンサー率43% (33/76)
回答No.3

こんばんは~♪ こんな方法もあります。 C列を作業列にして月だけを抜き出します。 C1: =IF(A1="","",MONTH(A1)) 下にコピーします。 D1 4 D2 5 D3 6 等入れて。 E1: =SUMIF(C:C,D1,B:B) 下にコピーします。 ★この場合は、データが違う年もあったら  その月も計算しますので  データが、同一年の場合有効です。 ★データが、同一年だけでない場合は C1:=IF(A1="","",TEXT(A1,"yyyyym")) 下にコピー。 E1: =SUMIF(C:C,"2006"&D1,B:B) 下にコピーしてください。 ご参考にどうぞ~。。。。Rin~♪♪

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

=SUMPRODUCT((TEXT(A1:A100,"YYYYMM")="200604")*1) のような式で2006年4月分の件数を求められます。B列の合計を求めるなら =SUMPRODUCT((TEXT(A1:A100,"YYYYMM")="200604")*(B1:B100)) になります。

  • lalpuru
  • ベストアンサー率21% (93/436)
回答No.1

  ピボットテーブルで集計して、日付の欄を「月」でグループ化するのが簡単です。  

huuraibou6
質問者

お礼

関数で無理であれば、最終的な手段としてピボットテーブルを使用する方法を考えています。

関連するQ&A

  • Excel関数orVBAでの複数条件を満たすカウント方法

    以下のようなデータ表があります。 (お手数ですが、以下半角スペースをタブ(\t)に変換し、エクセルのA1に貼り付けてください。) 連番 物品番号 記入日 状態 *状態1 *状態2 (状態) (セル色コード) 1 A0001 10/30 - - - 配送済み 38 2 A0002 10/30 - - - 配送済み 38 3 B008C 11/09 - - - 配送待ち 6 4 Z9800 5/12 - - - 未着手 2 5 A0001 11/09 - - - 配送待ち 6 6 Q9999 10/30 - - - 配送待ち 6 7 C5520 5/12 - - - 未着手 2 8 B008C 11/09 - - - 未着手 2 9 Z9800 5/12 - - - 未着手 2 10 A0001 11/03 - - - 未着手 2 11 Q9999 11/03 - - - 未着手 2 12 C5520 11/03 - - - 未着手 2 A列からF列までが表となっており、セルに対して色が塗ってあります。 そのセル色内容を関数で表示したものがH列になります。 なお、G列は当質問用の補足欄となります。 A~F列のセル色と、G列及びH列は対になっており、この表の場合ですとエクセル行2・3行目はピンク色、4・6・7行目は黄色にセルが塗られております。 ここで、11行目(連番でいくと10)のデータに対し、G列(状態)の 数をカウントしたいのです。(この場合ですと、配送済みのものが1件、配送待ちのものが1件となります。) E列の「*状態(1)」の箇所に配送済みの件数を、F列の「*状態(2)」の箇所に配送待ちの件数を入れたいのですが、どのようにしたら良いでしょうか? 注)この時データの状態を示す方法として、C列のセルの色コードを関数で自動参照するものとします。(関数はVBAで作成済み。)

  • 抽出した表でデータをカウントしたいのですが・・・

    タイトルにあるとおり、あるデータをオートフィルで抽出した状態で、その抽出結果からデータをカウントしたいのです。 以下のような表があったとします。    A  B  C  D  E   F  G  H  I 1  ○           ○  ○  ○ 2     ○  ○     ○        ○ 3        ○  ○  ○  ○ 4  ○  ○     ○     ○ 5     ○            ○  ○    ○ 6     ○  ○     ○        ○ 7  ○        ○        ○     ○ 8     ○  ○     ○        ○ 9  ○        ○  ○     ○ この表では、仮に各行○が4つとして、ランダムに各列に○が振り分けられています。 A列・4個、B列・5個、C列・4個、D列・4個、E列・6個、F列・4個、G列・4個、H列・3個、I列・2個 という状態です。    A  B  C  D  E   F  G  H  I 1  ○           ○  ○  ○ 2     ○  ○     ○        ○ 3        ○  ○  ○  ○ 4  ○  ○     ○     ○ 5     ○            ○  ○    ○ 8     ○  ○     ○        ○ 9  ○        ○  ○     ○ ある条件でオートフィルによって、抽出した結果が上の表です。 今回の例では6,7行が消えた状態だったとします。 それぞれ、A列・3個、B列・4個、C列・3個、D列・3個、E列・5個、F列・4個、G列・3個、H列・2個、I列・1個 と、いう結果になりました。 このような状態になった表で最下段、この場合9から上に向かって3行分の○をカウントするような方法、または便利な関数はありますでしょうか? 今回の例ですと、最下段から、3行分、5、8、9のそれぞれの列の○をカウントするという感じです。 A列・1個、B列・2個、C列・1個、D列・1個、E列・2個、F列・1個、G列・2個、H列・1個、I列・1個 これが今回の例における求めたい結果です。 抽出してない状態でしたら、OFFSET関数でいけるのですが、抽出した状態からだと私のスキルでは解決できません。 どなたか、ご存知の方ご教示よろしくお願いします^^;

  • 複数条件で重複しないデータをカウントする方法

    困っています。 エクセルの関数を教えてください。 複数条件に該当するデータをカウントする方法を教えてください。 A列とB列には不特定多数の名称と地名が入力されています。 このような表です。 A列(品名)    B列(出荷先)     いちご       東京 いちご       埼玉 いちご       東京  みかん       山梨 みかん       岐阜 りんご       埼玉  りんご       大阪 りんご       大阪 以下1500品目 A列のいちごでB列の出荷先が東京であるものは2件あります。 この「件数」を関数で表示させる方法を教えてください。 よろしくお願いいたします。

  • Excel関数:データの中から最高値をカウントしてその割合を求める方法

    例えば、   A B  C 1 50 25 50 2 40 80 20 3 0  0  0 4 30 45 45 5 90 25 35 このようなデータがあったとします。ここで1の列の最高値、2の列の最高値というように見ていきます。 ただし、最高値が複数ある場合、A(最も優先度が高い)←→C(最も優先度が低い)とし、同じ列の中でカウントされるのは1つだけにします。 また、0は除きます(総数からも省く)。 例の場合、1を見るとAとCが最高値ですが優先度はAの方が高いため、Aがカウントされます。 2は、B、3はカウントなし、4はBとCが最高値ですがBの方が優先度が高いためBがカウントされます。 このようにカウントしていって、「Aのカウント数/総数」のような計算をして、2/4となります。 同じようにBやCも計算し、パーセントで表します。 結果は、  A B C 6 % % % というように、計算式や関数はできるだけ少ないセルに収めたいのですが(計算式は「A6」「B6」「C6」の部分)、このような方法はあるでしょうか? 回答よろしくお願いします。

  • Excelで条件に合った数字の数をカウントしたいのですが・・・

    エクセルで【表1】のような表がある時、各品名別に在庫数<ゼロ のセルを、 関数を使ってカウントしたいのです。 【表1】 日付 品名 販売数 在庫数 1   A   30   52 2   A   20   22 3   A   25   2 4   A   15   -23 1   B   40   48 2   B   55   8 3   B   50   -47 4   B   45   -97 1   C   35   10 2   C   20   -25 3   C   40   -45 4   C   20   -85 但しこの時条件があり、品名ごとにカウントする期間が異なります。 別表で、【表2】のように 期間が入力された表があり、 品名Aなら 1~2日目のマイナスの在庫数を、 Bなら 1~3日目のマイナスの在庫数をカウントしたいのです。 【表2】 品名  期間 A    2 B    3 C    4 最終仕上げたいのは【表3】で、「在庫がマイナスになった期間」の列に入れる 関数を教えて頂きたいのです。 【表3】 品名  在庫<ゼロ になった期間 A     0 B     1 C     3 COUNTIF関数とOffset関数などを使ってみたのですが、 【表1】の日付が品によって 3になったり10になったりと変化するため、 引数の「基準」をどうすればいいのかが分からずに頓挫してしまいました・・・。 長々と分かりにくい説明になってしまいましたが、助けて下さい。 よろしくお願いします。

  • EXCLのフィルター実行後のデータカウント方法

    EXCEL2007で作成した表で下記のようにD列(H-O)を +20でオートフィルターで抽出した後、F列 の+と-と0の値を持つデータをそれぞれ +値=2件 -値=2件 0値=1件 というようにカウントしたいのですがSUBTOTAL関数では そのような集計方法がなく困っています。 何かいい方法はありませんでしょうか?  A列  B列  C列  D列  E列  F列 ------------------------------------- 1 日付  O  H  H-O  C  C-O -------------------------------------   2 06/01 100 120  +20 130 +30 3 08/08 115 135  +20 115 0 4 08/13 140 160  +20 130 -10 5 09/22 132 152  +20 120 -12   6 10/06 105 125  +20 130 +25

  • Excel関数:Excel関数:0を除いたデータから最高値をカウントして優勢率を求める計算方法

    例えば、以下のようなデータがあったとします。   A   B   C 1 50  50  25 2 80  80  80 3 45  50  60 4 35  70  45 5  0   0   0 このデータから1から5行目まで見て、「A」「B」「C」の中で最高値をカウントします。 「1」の場合、最高値は「A」と「B」になります。 「2」の場合、最高値は「A」「B」「C」全てになります。 「3」の場合、最高値は「C」になります。 「5」の場合、データ「0」なので除きます これをカウント数にすると、   A   B   C 1  1   1   0 2  1   1   1 3  0   0   1 4  0   1   0 となり、カウントの総数は「7」となります。 優勢率を求めるのに「Aの優勢率=Aのカウント数/カウントの総数」で、3/7となります。 結果、見た目では、   A     B     C 1 50    50    25 2 80    80    80 3 45    50    60 4 35    70    45 5  0     0     0 6 42.8%   42.8%  28.5% このようになります。このような見た目にしたいのですが、 条件は、 ・0を除いたデータ ・「A6」「B6」「C6」以外は計算式や関数を使わない ・1から5は実際のデータでは1から1000以上になることもある ということです。 関数は詳しくないのでまた質問するかもしれませんが、解説もよろしくお願いします。 回答よろしくお願いします。

  • EXCEL エクセルのフィルター実行後のデータカウント方法

    EXCEL2007で作成した表で下記のようにD列(H-O)を +20でオートフィルターで抽出した後、F列 の+と-と0の値を持つデータをそれぞれ +値=2件 -値=2件 0値=1件 というようにカウントしたいのですがSUBTOTAL関数では そのような集計方法がなく困っています。 何かいい方法はありませんでしょうか?  A列  B列  C列  D列  E列  F列 ------------------------------------- 1 日付  O  H  H-O  C  C-O -------------------------------------   2 06/01 100 120  +20 130 +30 3 08/08 115 135  +20 115  0 4 08/13 140 160  +20 130 -10 5 09/22 132 152  +20 120 -12   6 10/06 105 125  +20 130 +25

  • エクセルにて2つの条件を満たす人数のカウント方法

    いつもお世話になっています。 エクセルの関数にて質問があります。 ご教授ください。 A1~A20に名前、 B1~B20列に○もしくは空白 C1~C20列に年齢を入れた表があります。 B列に○がついていて、尚且つ年齢が20才未満の 方の人数をカウントしたい場合どのような関数を入力すればいいのでしょうか? ご教授よろしくお願いします。

  • エクセル 重複データのカウント

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、A列に7ケタの数字13万件         B列に同じく7ケタの数字100~2000件         C列にB列にデータがある行まで=COUNTIF($A$2:$A$130000,B2) 上記の状況で、C列の値は1か0しか出ない状態なので、 セルD1に=COUNTIF(B2:B2000,0)と入れてB列にあるけどA列にないデータの 数(重複していないデータ)をカウントしています。 しかしながら、ベースとなっているA列のデータが13万件と多いので、 再計算などに結構時間がかかっているので、どうにかならないかと思いまして 質問させていただきました。 ちなみに、A列のデータは少しずつ増えていきます。 1度B列にあってA列にないデータは、次にB列に違うデータを入れてカウントする際に 新規データとしてA列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

専門家に質問してみよう