• ベストアンサー

エクセルデータを、条件付きで、件数を数える方法を教えていただけませんでしょうか?

エクセルデータを、条件付きで、件数を数える方法を教えていただけませんでしょうか? 01北海道 既存事業 既存製品 単独 04宮城 新規事業 新規製品 提携 04宮城 新規事業 新規製品 提携 04宮城 新規事業 新規製品 提携 04宮城 新規事業 新規製品 提携 04宮城 新規事業 新規製品 提携 10埼玉 既存事業 既存製品 単独 11埼玉 新規事業 新規製品 提携 ・ ・ ・ 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 13東京 新規事業 新規製品 単独 ・ ・ ・ 上記のようなエクセルデータ(「01北海道」「既存事業」「既存製品」「単独」といった 列は、各々セルが分かれています)が、300行位あります。 この中で、例えば、 「埼玉」(00行A列)「新規事業」(00行B列)「新規製品」(00行C列)「単独」(00行C列) といった条件、つまりパターン(パターンは、別の行に用意するつもりです)で、 そのデータの個数が、何個あるか、を 出したいです。 例えば、 CountIF で =COUNTIF(C3:G196,A00,B00,C00,D00) とすると、エラーが出てしまいます。 そこで、カッコを追加すると、 =COUNTIF(C3:G196,(A00,B00,C00,D00)) とすると、「0」件となってしまいます。 良い方法はございますでしょうか? 業務で使用しているため、かなりあせっています。 よろしくお願いいたします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

検索条件を変える必要が有るなら、データベース関数を使用してはいかがでしょう。 データベースとして扱うには各列に見出しが必要ですので、仮に「地域」「事業」「製品」「種類」と、見出しを付けます。 また、数を数える為には数値が入っている列が必要なので、「WORK」と言う列を追加して全ての行に1を入れておきます(もし、必ず数値が入っている行があるならWORKは不要)。 これで、A:Eがデータベースとなります。 次に検索条件を設定する場所を作ります。 今回はG1:J2を検索条件で使います。 G1:J1に「地域」「事業」「製品」「種類」と、データベース同様の見出しをつけ、2行目に検索条件を入れます。 例:10埼玉 新規事業 新既製品 単独 ここまでが下準備。 適当なセルに↓をいれると、条件に一致した列の数がカウントされます。 =DCOUNT(A:E,"WORK",G1:J2)

megamax
質問者

お礼

早々のご回答、誠にありがとうございました。 次に、東京のパターンをやりたい場合は、掲載していただいた上記の 図を基に 例えば、 G3に「13東京」、H3に「新規事業」、I3「新規製品」、J3に「提携」 といった場合、 =DCOUNT(A:E,"WORK",G1:J3) とすると、2列目、3列目の合計になってしまいます。 K列以降に、横に伸ばしていけばよいのですが、32列分条件がありまして、1点づつコピーするのは、大変です。 このような場合には、どのようにしたらよいでしょうか? お忙しいところ誠に恐縮ではございますが、ご教授いただければ 幸いに存じます。

megamax
質問者

補足

早々のご回答、誠にありがとうございました。 次に、東京のパターンをやりたい場合は、掲載していただいた上記の 図を基に 例えば、 G3に「13東京」、H3に「新規事業」、I3「新規製品」、J3に「提携」 といった場合、 =DCOUNT(A:E,"WORK",G1:J3) とすると、2列目、3列目の合計になってしまいます。 K列以降に、横に伸ばしていけばよいのですが、32列分条件がありまして、1点づつコピーするのは、大変です。 このような場合には、どのようにしたらよいでしょうか? お忙しいところ誠に恐縮ではございますが、ご教授いただければ 幸いに存じます。

その他の回答 (4)

回答No.5

なんで関数で解決したいのでしょうか? 抽出したい内容が全部別々のセルに入ってるのなら フィルタで抽出した方が早くないですか?

megamax
質問者

お礼

アドバイスありがとうございます。今回は、各列項目で、合計を 出すのではなく、各列項目の組み合わせパターン別に、件数を把握したいので、フィルタでは難しいかと思いました。良い方法はございますでしょうか?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 参考になるかどうか判りませんが・・・ ↓の画像のように表を作ってみました。 尚、質問内容を見る限り、「新規事業」の場合は「新規製品」 「既存事業」の場合は「既存製品」となっているので 製品の項目は無視しています。 表の H3セル =SUMPRODUCT(($C$3:$C$12=$H$1)*($E$3:$E$12=$H$2)*($B$3:$B$12=G3)) I3セル =SUMPRODUCT(($C$3:$C$12=$I$1)*($E$3:$E$12=$I$2)*($B$3:$B$12=G3)) J3セル =SUMPRODUCT(($C$3:$C$12=$J$1)*($E$3:$E$12=$J$2)*($B$3:$B$12=G3)) K3セル =SUMPRODUCT(($C$3:$C$12=$K$1)*($E$3:$E$12=$K$2)*($B$3:$B$12=G3)) と数式を入れて、H3~K3セルを範囲指定した後に フィルハンドルの(+)マークでダブルクリックしています。 以上、当方使用のExcel2003での回答でした。 参考になれば幸いですが、 的外れの回答なら読み流してくださいね。m(__)m

megamax
質問者

お礼

ご丁寧な回答、誠にありがとうございました。的外れなんてとんでもないです。とても参考になりました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問者のやってみた式(#1のお礼) =SUMPRODUCT(( C3:G196="13東京")*(C3:G196="新規事業")*(C3:G196="新規製品")*(C3:G196="単独")) のように、C3:G196のようにしてはダメ。 回答者は正しく回答されているのに質問者が、勝手に変えてしまっている。お詫びされたし。 C3:C196のように1列について、聞くような式を4つ連ねる。 *を使う意味はAND条件だからだよ。 ーー それにエクセルバージョンを書くこと。 2007ならCOUNTIFSがあって考えやすい(Googleで具体的な式は照会のこと)

megamax
質問者

お礼

色々、ご指摘いただきありがとうございました。別の回答者の方には、別途お詫びいたします。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.1

=SUMPRODUCT((C1:C196="埼玉")*(D1:D196="新規事業")*(E1:E196="新規製品")*(F1:F196="単独")) とかでどうですか? 参照範囲はよくわからないので変更してください。 "埼玉"等の条件はセル指定でもOKです。 EXCEL2007であれば複数条件が使える COUNTIFS 関数が使えますが…

megamax
質問者

お礼

ご回答ありがとうございました。

megamax
質問者

補足

ありがとうございます。参照範囲を、 c3:G196 として、以下のように入力しました。 =SUMPRODUCT(( C3:G196="13東京")*(C3:G196="新規事業")*(C3:G196="新規製品")*(C3:G196="単独")) ですが、「0」(ゼロ)となってしまいます。東京、新規事業、新規製品、単独、というパターンは、多数あるのですが。

関連するQ&A

  • エクセルデータを、条件付きで、件数を数える方法を教えていただけませんでしょうか?(2)

    以下のようなデータがあります(ある企業のプレスリリースをまとめたもの)。 【データ】 地域 事業種別(新or既) 製品別(新or既)事業形態(単or提) 事業領                                 04宮城 新規事業  新規製品  提携      A 07福島 新規事業  新規製品  単独      B 11埼玉 既存事業  新規製品  単独      C 13東京 既存事業  新規製品  単独      A  13東京 既存事業  既存製品  提携      A 13東京 既存事業  新規製品  提携      B 13東京 既存事業  既存製品  単独      C 13東京 既存事業  新規製品  提携      D 13東京 既存事業  新規製品  提携      A 13東京 既存事業  既存製品  単独      B 13東京 既存事業  新規製品  単独      C 13東京 既存事業  新規製品  単独      A 13東京 既存事業  新規製品  単独      A 13東京 既存事業  既存製品  単独      A 13東京 既存事業  新規製品  提携      A 13東京 既存事業  既存製品  単独      A 13東京 既存事業  新規製品  単独      A ・ ・ これを、集計したいです。以下のように集計したいです 【集計表】                        エリア数 事業別 製品別  事業形態 領域    実施数                       A,B,C,orD  ?                             13東京 新規事業 新規製品 単独  A    ? 13東京 新規事業 既存製品 単独  A 13東京 新規事業 新規製品 提携  A 13東京 新規事業 既存製品 提携  A 13東京 既存事業 新規製品 単独  A 13東京 既存事業 既存製品 単独  A 13東京 既存事業 新規製品 提携  A 13東京 既存事業 既存製品 提携  B 01北海道新規事業 新規製品 単独  B 04宮城 新規事業 既存製品 単独  B 07福島 新規事業 新規製品 提携  B 11埼玉 新規事業 既存製品 提携  C 11埼玉 既存事業 新規製品 単独  D 例えば、 「エリア:13東京/事業種別;新規事業/製品種別;新規製品/事業形態;単独/事業領域:A」 は「実施?;何件」 を算出したいです。 という具合です。元データは、400件くらい、集計パターン(集計表)は32パターンあります。 先般も、ご質問させていただいたのですが、 もう一つうまく行きませんでした。 こちらの条件指定がまずかったのか、 データベース関数やSUMPRODUCTといった関数を教えていただきました。 以上の条件で、関数などを使って早急に、データ件数を集計する方法は ございますでしょうか? 業務に利用するものですから、早々にご教授いただけましたら、誠に 幸いです。よろしくお願いいたします。

  • <エクセル>複数条件下での個数の数え方

    A列に都道府県、B列に地域、C列に売上がある表があります。 東京と大阪を除いた地域のうち、C列で0以上のセルの個数を表示したいと思います。(ここだと2コ) countif、dcountなど考えましたが、うまく表示できません。 列を増やさず、個数を表示できる関数を教えてくださいますか? 宜しくお願いします。    A    B       C 1 東京    新宿    500 2 大阪    心斎橋    0 3 名古屋   栄     300 4 東京    渋谷     0 5 北海道   札幌    100 6 宮城    仙台     0 7 大阪    梅田    100  

  • エクセル 複数行にまたがっているデーターを一つの行にまとめたい

          A列  B列   C列 1行目  佐藤 北海道 りんご 2行目  佐藤 北海道 ばなな   3行目 伊藤  東京  いちご 4行目  伊藤  東京  ばなな  上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列 1行目  佐藤 北海道  りんごばなな 2行目  伊藤  東京   いちごばなな A列とB列のデーターが同じでC列のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

  • エクセル 複数行にまたがっているデーターを一つの行

    以前に似たようなVBAの質問を元にさらにやりたいVBAがあるのですが、 (前の質問者のURL:http://okwave.jp/qa/q4955096.html)       A列  B列   C列   D列   E列 ~ R列 1行目  佐藤 北海道 りんご S 100 105 2行目  佐藤 北海道 ばなな M 100 105   3行目 伊藤  東京  いちご S 100 105 4行目  伊藤  東京  ばなな M 100 105 上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列      C列 1行目  佐藤 北海道  りんご,ばなな  S,M 2行目  伊藤  東京   いちご,ばなな  S,M A列とB列とE列~R列のデーターが同じでC列,D列,のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

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

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、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列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

  • エクセルの重複データを整理する方法

      毎日の生産管理でエクセル2000を使用しています。 A列に製品名、B列に生産個数というように入力。 重複したデータが日替わりのように発生していますので、 あとでデータ整理するのが大変です。    A    B    C    D   ・・・・ 1 A製品  200 2 B製品  200 3 C製品  250 4 A製品  100 5 D製品  300 6 E製品  120 7 C製品  600 8 B製品   50 ・ 教えて!欲しいのは下記のように重複したデータ(製品名)の場合、 既存の製品の行の空白セルに生産個数を自動的に書き込み、整理する方法。    A    B    C    D ・・・・ 1 A製品  200  100 2 B製品  200  50 3 C製品  250  600 4 D製品  300   5 E製品  120   6  7  8 ・ いろいろ「エクセル 重複データ」に関する質問を検索したのですが、 これに当てはまる質問を見つけられず、意を決して投稿しました。 マクロ、VBAでも構いませんので、どうかご教授願います。 

  • 複数条件に合うデータ件数を表示したい

    エクセル初心者です。解決法をご教示くだされば幸いです。 A列にはAまたはBどちらかの文字が入力されています B列には都道府県名が入力されています(例)北海道、東京、大阪・・・ C列には区市町村名から始まる住所が入力されています。(例)札幌市中央区南六条、中央区築地5丁目、守口市八雲東町2丁目・・・ このようなデータが並んでいる中から「Aであり、かつ東京都中央区の住所」であるデータの件数を表示したいのですが、どのような関数を使った式を組めばよいのでしょうか。よろしくお願いします・

  • 【エクセル】データの重複チェック

    次のようなデータが入力されているとします。 A列/B列/C列/D列/E列/F列 1行:都道府県/市区町村/data1/check1/data2/check2 2行:東京/新宿/1/""/1/"" 3行:東京/新宿/2/""/2/"重複" 4行:東京/新宿/3/""/3/"" 5行:東京/渋谷/1/重複/4/"" 6行:東京/渋谷/2/""/5/"" 7行:東京/渋谷/3/""/6/"" 8行:東京/渋谷/4/""/2/"重複" 9行:東京/渋谷/1/重複/7/"" ここで、check1は、 「都道府県」のグループでdata1に重複があれば、「重複」表示をさせます。 また、check2は、 「市区町村」のグループでdata2に重複があれば、「重複」表示をさせます。 例えば、 セルD2=IF(COUNTIF($C$2:$C$4,$C$2:$C$4)>1,"重複","") セルF2=IF(COUNTIF($E$2:$E$9,$E$2:$E$9)>1,"重複","") というように関数を入力して、2行目以下にコピペすればいいのですが、 実際は1万行以上のデータがあり、「都道府県」「市区町村」も多くのグループがあるため いちいち範囲を指定するのも大変です。 そこで、上記関数のように手動で範囲を指定しなくても、 自動で範囲指定をして重複チェックができる良い方法があれば教えてください。 できれば関数がいいのですが、VBAでも構いません。 ご教授のほど、よろしくお願いします。

  • エクセル:条件データの選出

    エクセル (前提) 項目1から項目5の100行×5列の表 1行目:タイトル (1,1)が項目1、――、(1,5)が項目5    (2,1)から(100,5)がデータ (求めたいこと) 項目1データと項目2データの組合せを重複なく数え G列以降に存在するだけ G列            : H列       :I列    ----------------- 項目1データの1      : 項目1データの2:項目1データの3------------ 対応する項目21データの1 : 項目2データの2:項目2データの3------------: という形で出力したいする。(但し項目1は昇順にしたいが今回それは保留) (例) A列    B列 項目1  :項目2 C     に A     い B     ろ A     い B     は C     に D     い (例結果) G列 A:B:B:C:D(ここは必ずしもソートの必要なし) い:ろ:は:に:い どう解決すればということで、 1行目に項目1、2行目に項目2ということで G1=INDEX($A$2:$B$100,SMALL(IF(MATCH($A$2:$A$100&$B$2:$B$100,$A$2:$A$100&$B$2:$B$100,0)=ROW($A$1:$A$99),ROW($A$1:$A$99)),COLUMN(A1)),ROW(A1)) 配列数式です。Ctrl + Shift + Enter 2行目にフィル、エラーが出るまで横へフィル 昇順ではないので、結果をコピー、そのまま[形式を選択して貼り付け]-[値]、 あとは、列単位で並べ替え。 このやり方で一つの立派な解なのですが。 (質問) 項目1と項目2がA列,D列と離れている場合はどうするかということです。 もちろんワーク用にシートをコピー後B列~C列を削除して適用すれば求まるのはわかりますが、そうしないでもできる方法があれば教えてください。

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

専門家に質問してみよう