• ベストアンサー

エクセルの項目数抽出法??

エクセル2000使用です。 とある名簿のデータから、「何区の△▼という条件の人は何人か」を抽出したいのですが、<セルA>○●の字(区名)と<セルB>△の条件を満たすセルは×個あるか、別に作ってある表に×数が書き込まれるようにするにはどうしたらよいでしょう? 今は 名簿のシート:<セルC>オートフィルで日にちを限定”→その中で<セルA>○●区を含む”で更に抽出→<セルB>をみて条件△、■等を選択、そのセルの数×を数える 別表:○●区{条件△…×個}       {条件■…××}と ×部分を手動で書き込んでいます。  条件が何種類もあるので、結構大変です。 名簿に記入した時点で自動的に別表へ数値を入れていける方法を教えて下さい。 

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

  • ベストアンサー
回答No.14

こんばんわ。私のところで再度コードをチェックしましたが問題なく動きました。まずこのマクロは、シート1のB1が変化し、そのセルを脱出した時に必ず走るという動作をします。 まず、もう一度シート1のA1に1/1・B1に1/31と入力してB1のセルを脱出してみて下さい。すると必ず2行目にオートフィルターのボタンが表示されますので、表示されているかどうか確認して下さい。 もし、表示されないのであれば、マクロが走っていないことになります。この場合は、ここでは解決できないと思います。私がマクロを組んでいて躓いた時に利用するVBA友の会というサークルがあります。このサークルは、無料でVBAの組み方などを親切に教えて下さいます。どうしても解決したい時には、そこにご相談してみてはいかがでしょうか。担当者が親身になって懇切丁寧に教えて下さいます。事務局の電話番号をお知らせいたします。 TEL 043(278)2548(午後1時~午後10時まで) 私がこの場で解決できれば一番いいのですが、動かない原因として色々考えられますので、サークルの担当者にお聞きになるのが一番早い解決方法かと思います。

hurry5me
質問者

お礼

教えていただいた電話に問い合わせてみます。 本当にいろいろとありがとうございました。

その他の回答 (13)

  • daiju3000
  • ベストアンサー率29% (21/72)
回答No.3

#2です 肝心なことをいい忘れました。 一番上の式の"〇●区","△","2002/1/1"はお使いの条件に合うように書き換えてください。

  • daiju3000
  • ベストアンサー率29% (21/72)
回答No.2

A1~A15に地区 B1~B15にその他条件 C1~C15に日付 とあったと仮定します。 ×数を求める式は、 =SUM((A1:A15>="〇●区")*(B1:B15="△")*(C1:C15=DATEVALUE("2002/1/1"))) と入力して、Ctrl+Shift+Enterを押します。 その他条件のところは、説明になかったので、かってに『"△"という文字列である』というような条件にしました。 複数の条件を持つカウントは、COUNTIFではうまくいきません。上の式を見れば分かると思いますが、 =SUM((条件(1))*(条件(2))*(条件(3)))というように入力して、Ctrl+Shift+Enterを押すと、正しくカウントされます。  つまり、条件に一致すれば(TRUE)1で、一致しなければ(FALSE)0ということです。 条件(1)=TRUE 条件(2)=TRUE 条件(3)=TRUEの場合は SUM(1*1*1)=1 条件(1)=TRUE 条件(2)=FALSE 条件(3)=TRUEの場合は SUM(1*0*1)=0 条件(1)=FALSE 条件(2)=FALSE 条件(3)=TRUEの場合は SUM(0*0*1)=0 というように完全に条件に一致する件数を数えることが出来ます。 わけわかんない文でスミマセン。

hurry5me
質問者

補足

これは簡単にできそう・・・とチャレンジしてみたのですが、 どうもカイルちゃんのエラーばかり出て進みませんでした。 ひとつわからないのが、(C1:C15=DATEVALUE("2002/1/1"))部分で、 SUM((A1:A15>="〇●区")とした時点で、選択したい日にちは限定できているので、DATEVALUEとするとどうなるのか??ということです。 名簿シートは2002/1/1から縦にずらっと2002/11/6まで、データの数の分の行数があり、要は1ヵ月ごとの集計を取りたいのです。 日にち限定はオートフィルを使っているという説明で足りるかな、と思っておりましたが説明不足ですみません、更に良い手があればお返事お待ちしております(^^)

  • oresama
  • ベストアンサー率25% (45/179)
回答No.1

ワークシートで、 A列:条件1(地区名) B列:条件2 C列:条件3(日付) で条件1~3を全て満たすデータの個数をカウント するという前提で話を進めます。 D列に=A○&B○&C○(○は行番号) を入力して、データ最終行までコピー E1に抽出条件1 F1に抽出条件2 G1に抽出条件3 を入力 H1に、=COUNTIF(D:D,E1&F1&G1) 入力 E2以降に、別の抽出条件を入力して、 H1をコピペする。 いかがでしょう??

hurry5me
質問者

補足

countのやり方がなるほど、と思ったのですが 実は”条件”の部分、住所が部屋番号まで入っている内、このセルの選択基準は”●○区”まででいいんです。 オートフィルでいう「○×を含む」の感覚です。 なので、>F1に抽出条件2の部分がうまく反映できないようです。 せっかく考えていただいたのに説明不足ですみません。

関連するQ&A