sumproductを使って選択項目ごとの件数を把握する方法について

このQ&Aのポイント
  • エクセル2003を使用している会社で、sumproductを使って選択項目ごとの件数を把握したいです。選択項目は「ランク」「性別」「年齢」などですが、選択項目の数によって正確な件数が取得できないことがあります。
  • sumproductの式を選択項目の数ごとに作成する必要があるのでしょうか。例えば、ランクが「ゴールド」の件数やランクが「ゴールド」で性別が「女性」の場合の件数を把握したいです。
  • 選択項目ごとに式を作成しなければならないのでしょうか。もし良い方法があれば教えていただきたいです。
回答を見る
  • ベストアンサー

sumproductを使いますか?

会社でエクセル2003を使っています。 データで拾いたい数字がありまして、お客様の「ランク(一般、ゴールド、プラチナ)」「性別(男、女)」「年齢」です。その他、いろいろありますが… 例えば、sumproductを使って、3種類の項目をデータの入力規則で▼プルダウンで選択すると、とりあえず3つの項目を選択した件数は取れるのですが、選択の項目を2つにしたり、1つにしたりすると件数が正確に取れません。 この場合は、やはりsumproductの式を項目1個の場合の式、項目2個の場合の式というように、別々に計算式を作らないといけないのでしょうか? ・ランク「ゴールド」の件数 ・ランク「ゴールド」で女性の場合の件数 ・ランク「ゴールド」 性別「女性」 年齢「18歳」の件数   といった具合で その都度、選択項目を変えて件数を把握したいと考えています。 選択項目「1個用」の式「2個用」の式…と計算式をその都度作らなければいけませんか? いい方法があれば教えていただければと思っています。 わかりにくい説明とは思いますが、なにとぞよろしくお願いします。

  • s1023
  • お礼率77% (49/63)

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

添付図のような表を想定してみました。 >この場合は、やはりsumproductの式を項目1個の場合の式、項目2個の場合の式というように、別々に計算式を作らないといけないのでしょうか?  一つの式での対応が不可能とは言えませんが、現実的ではないでしょう。将来的に項目が増えたり減ったりすることを想定するのは大変です。今でもランク、性別、年齢があるわけで、21歳~25歳などを出したいとき算式を修正するにしろ検証が大変でしょう。   また、集計項目は多岐にわたり、算式を作り出したらキリがないでしょう。よく言う、プログラムはできることしかできません。   このように多岐にわたる集計や抽出を行う場合は、集計ツール(算式)はよほど頻繁に使う場合以外は作らない方がいいと思います。   添付図のように、基礎データ(原始データ)があれば、Excelでは、  ・小計機能  ・グループ化  ・フィルター  ・フィルターの詳細設定  ・ピボットテーブル  ・統合 などの機能が使えます。 例えば「フィルター」を使う場合(添付図)、SubTotal関数をデータの最後に置いておけば、フィルター結果の集計をしてくれます。   件数「パラメーター 3」:=SUBTOTAL(3,A2:A16)   合計「パラメーター 9」:=SUBTOTAL(9,E2:E16)    ご参考に。

s1023
質問者

お礼

わかりやすい添付図をありがとうございます。 SUBTOTALを使ったものを作ってみて、会社のメンバーに聞いてみます。 本当にありがとうございました。 毎度毎度、遭難状態なのでまた、質問させていただきます。

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>選択項目「1個用」の式「2個用」の式…と計算式をその都度作らなければいけませんか? 検索条件によります。 文字列比較の場合はFIND関数を組み合わせれば検索文字列を空欄にして対応できます。 数値の場合は不等号(<、>、<=、>=)であれば対応できるでしょう。 Excel 2007以降では次の数式で計数できます。 =SUMPRODUCT(IFERROR(FIND(D1,A:A),""),IFERROR(FIND(E1,B:B),""),(C:C>=F1)*1) この式は計算途中で配列数を返しますので、数式バーに入力後、Ctrl+Shift+Enterキーで確定してください。 D1にランク、E1に性別、F1に年齢を入力して計数してください。

s1023
質問者

お礼

早速の回答をありがとうございます。 まだまだ、バージョンアップしそうにない会社のパソコン… 自分の持っているパソコンに入っているエクセルのバージョンと会社のバージョンの違いに毎度毎度振り回されています。 ありがとうございました。

関連するQ&A

  • SUMPRODUCT関数について

    SUMPRODUCT関数について いつもお世話になっています。 以前こちらでSUMPRODUCT関数を教えていただき大変統計がしやすくなり、 仕事が効率化しました。ありがとうございます。 ところで、SUMPRODUCTだと思うのですが、計算式がうまく組み立てられないのでご質問させていただきます。 A列に部門名、B列に実施日が入力されているエクセルシートがあり、 部門ごとの実施件数を出したいのです。 SUMPRODUCT((A2:A100="○部門")*(CAUNTA(B2:B100))) としてみましたがうまくいきません。 たぶん *(CAUNTA(B2:B100)) の部分がいけないのだろうとは思うのですが、どう変化させればいいのでしょうか? 関数の選択が間違っているのかもしれない、とは思うのですが、適切なものが分かりません。 ご教授お願いします  

  • エクセル関数(SUMPRODUCT)について教えてください。

    SUMPRODUCTを使って、件数を出しています。   A    B(抽出条件を入力) 1都道府県  ● 2職業    ● 3性別    ● 4購買日   ●    A    B    C   D     11 都道府県  職業   性別  購買日   12 東京    会社員  男   20080901  13 ・      ・   ・    ・     14 ・      ・   ・    ・     15 ・      ・   ・    ・     上記のような表を作り、A11:E100までデータが入っています。 B1:B5に条件を入れて、C1:C4に =SUMPRODUCT(($A$12:$A$100=$B$1)*($B$12:$B$100=$B$2)*($C$12:$C$100=$B$3)*($C$12:$D$100=$B$4)*1) で件数をカウントしています。 抽出条件をすべて指定すると、件数が出てきますが、特に指定しないで 空欄のままで件数をカウントする方法はないでしょうか? (たとえば、職業を絞らないでほかの条件だけで抽出するとか) 何か解決策を教えてください。

  • SUMPRODUCT関数の疑問

     ExcelでSUMPRODUCT関数を条件付きの合計を求めるのによく使っていますが、理解できない動作があります。  仮にA,B,Cが配列、b,cが定数として、A=aかつB=bの場合のCの合計を求めるものとします。 <式1>SUMPRODUCT((A=a)*(B=b)*C)→正しい計算結果 <式2>SUMPRODUCT((A=a)*(B=b),C)→正しい計算結果 <式3>SUMPRODUCT(A=b,B=b,C)→ゼロ <式4>SUMPRODUCT(1*(A=a),1*(B=b),C)→正しい計算結果  3つともすべて同じ計算結果が出てくると思いきや、<式3>だけが何故0になるのかが理解できません。  私は、理由が分からず、腑に落ちないまま<式1>の方法を使っています。  これは仕様上の問題なのか、詳しい理由が分かる方がいれば、解説をよろしくお願いします。  なお、私はExcel2000を使っていますが、Excel2002ではどうなるんでしょうか。

  • SUMPRODUCT関数について

    アンケートの集計をするにあたって、 SUMPRODUCT関数を使いました。 シートが2つあります。 【データ】シート・・・アンケートのデータ A:No. B:データ 1   0 2   1 3   2 4   3 5  空欄が入っている ・ ・ 【集計】シート・・・B列の空欄、1~3の個数を集計する B列に数式 =SUMPRODUCT((データ!$A$4:$A$40000<>"")*(データ!B$4:B$40000=$A4)) を入れました。 A  B 0  2 ・・・・※ 1  1 2  1 3  1 空欄 2・・・・※ 0(ゼロ)と空欄を区別しないで同じと計算してしまいます。 データに、ゼロと空欄が混在している場合、SUMPRODUCTは使えないのでしょうか? この場合、どの数式を使うのがベストでしょうか? 分かりにくくて申し訳ありませんが、 宜しくお願い致します。

  • DCOUNTA エクセル2003

    会社でエクセル2003を使っています。 データリストは A列  B列  C列  D列  E列  F列 リストNo. 名前 会員ランク 年齢 性別 住所 と入力しています。 DCOUNTA 使って、条件別の件数を出したいと思っています。 DCOUNTA(A1:F51,B1,H1:M2) の条件式であれば、それぞれいろいろな条件で件数が出せるのですが、 DCOUNTA(A1:F51,B1,H1:M5)として、例えば、C列のランクを「ゴールド会員」と「シルバー会員」の同じ項目の複数の種類を出したい場合、まったく条件式が機能しません。 DCOUNTAは使えないのでしょうか? なにとぞよろしくお願いします。 画像を添付してみました 上のセル番号と添付画像のセル番号が違うのですが…お許しください。 見えにくいのもお許しください

  • SUMPRODUCT関数について

    こんにちわ! 以前にSUMPRODUCT関数を教えていただいたのですが、またわからないポイントが出てきてしまいましてどなたかお教えください。 【例】     A列     B列    C列 1    担当者  オーダー日   カテゴリ 2   A子   2007/9/5   b a 3   B美   2007/9/6   cd 4   C男   2007/9/7   cg 5   D輔   2007/9/7   cv 6   E司   2007/9/5   ca 7   A子   2007/9/7   cv 8   ・      ・     ・ 9   ・     ・     ・ そして別の場所<A12>に 昨日のオーダー =TODAY()-1 という計算用の式を作成し、 次のような式を作成しました。 【式1】 SUMPRODUCT(($A$3:$A$10="A子")*((TEXT($B$3:$B$10,"ymd")=TEXT($A$12,"ymd"))*($C$3:$C$10="cv"))) さらに検索したい項目があり、最初次のように式をまず作成してみました。 【式2】 =SUMPRODUCT(($A$3:$A$10=""A子"")*((TEXT($B$3:$B$10,""ymd"")=TEXT($A$12,""ymd""))*($C$3:$C$10=""cv""))) +SUMPRODUCT(($A$3:$A$10=""A子"")*((TEXT($B$3:$B$10,""ymd"")=TEXT($A$12,""ymd""))*($C$3:$C$10=""ca""))) +SUMPRODUCT(($A$3:$A$10=""A子"")*((TEXT($B$3:$B$10,""ymd"")=TEXT($A$12,""ymd""))*($C$3:$C$10=""ba"")))" 『長い!』と思い、この式を短くしようと、 【式3】 SUMPRODUCT(($A$3:$A$10="A子")*((TEXT($B$3:$B$10,"ymd")=TEXT($A$12,"ymd"))*(OR(($C$3:$C$10="cv"),($C$3:$C$10="ca"),($C$3:$C$10="ba"))))) という式を作成したところ全然ダメでした。 【式2】を簡素化することは可能でしょうか? どうぞ宜しくお願いします。 余談として・・・ 更に、もし可能であれば、他の関数と組み合わせるにはどこに気を付けたらよいのでしょうか?たとえばAND・IF・VLOOKUPなど ・・・こちらはただの興味ですのでご返答は無くてもかまいません。

  • SUMPRODUCTに3つ以上の条件

    A列に男女別、B列に年齢別、C列に住所、D列に部署別のデータが1万人以上、入っています。 1つのセルに、関数で港区、男性、30代の人数のデータを抽出したい。 SUMPRODUCTに条件の2つまでは正しく抽出されるが、3つめの年代別がうまくいきません。 また、そのほかに E-1セルに"男女別"、F-1セルに"年齢"、G-1セルに"住所"、H-1セルに"部署名"、I-1セルに 人数の項目を作成し、E~Hに条件を入れれば、I-1のセルに、人数を出したい場合の作り方を 教えてください。よろしくお願いします。

  • エクセル関数 SUMPRODUCTについて

    エクセル関数でSUMPRODUCTについて質問させていただきます。 ↓A1 コーラ  A ポカリ  A 珈琲   A 石鹸   B 洗剤   B ポカリ  A 食パン  C 菓子パ  C 洗剤  B   3←C11(Aの数を数えています。) と、入力されているデータにおいては、 =SUMPRODUCT((MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9))*($B$1:$B$9="A")) の関数で求めるデータが出ることはわかりました。 (Aの数は4個ですが、ポカリがダブっているので3個として数えるように設定したいのです。同じ様にBの数は洗剤が2つあるので2個として計算します。) しかし、A1~C11のデータをすべて切り取りして 例えばA11からC21に貼り付けた場合はC21の計算結果が”0”になってしまいます。 その際のC21の関数は =SUMPRODUCT((MATCH($A$11:$A$19&$B$11:$B$19,$A$11:$A$19&$B$11:$B$19,0)=ROW($A$11:$A$19))*($B$11:$B$19="A")) になっています。 この場合だと具体的にどのように関数を変化させればいいのでしょうか? ご指導いただければありがたいです。よろしくお願いします。<m(__)m>

  • プラチナカードのランクは?

    教えてください。 カード会社によって、プラチナカードのランクが異なると聞きました。 ・一般カード→ゴールドカード→プラチナカード→最高ランクにブラックカード ・一般カード→ゴールドカード→ブラックカード→最高にプラチナカード AMEXの場合ではどういう扱いになるのでしょうか?

  • SUMPRODUCTで期間集計・・・

    皆さま宜しくお願いします。 SUMPRODUCTで集計をしていて、シートAのA列からV列まで各項目があります。 別シートに、 =SUMPRODUCT(('シートA'!$H$2:$H$5000=$A$2)*('シートA'!$R$2:$R$5000={"1","2","3","4"})*'シートA'!$T$2:$T$5000) ちなみに、 シートAのH列はID、シートAのR列は状況、シートAのT列はポイントとある場合、 日付がシートAのN列にありますが集計期間がまちまち(例10/1~10/10や10/11~10/17など)でどのように式の中に入れたらよいのか悩んでいます。 単純に(10/1<='シートA'!$N$2:$N$5000<=10/10)と入れてみたりしてみましたがダメでした。 どのようにしたらよいでしょうか? 宜しくお願いいたします。