• 締切済み

EXCELのsumproduct

EXCELで,複数条件のデータを数えるとき,SUMPRODUCTを使うのが良いと聞いたんですが,具体的な使い方が分かりません。このWEBに載っているのも参考にやってみましたがうまくいきませんでした。よろしくお願いします。

みんなの回答

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

SUMPRODUCT関数私見。 (1)2条件(2列以上の列のデータに条件をつけて)以上の判別(篩にかけて)ある列の計数の合計をする関数に 適当なものがない。 本来エクセルではDSUMが使われることを予想していたかもしれないが、条件を式以外ののところへセットするので 嫌われているようです。 SUMPRODUCTは条件も式に組みこまれるので、考えやすいです。 (2)たまたまIf関数の真偽判定で、TRUEは1、FALSEは 0の値をエクセルは取ってくれるので、 計数1*真+計数2*偽+計数3*真のような計算に持ちこむと、真の行の計数1+計数3を足すことになるので使われる。 本来の使い方とは少しづれた使い方です。 (3)条件が3以上になっても同じ考え方で式を組みたて られるのも好まれます。 本来は 製品1 単価1 売上数量1 製品2 単価2 数量2 製品3 単価3 数量3 製品4 単価4 数量4 ・・ のような売上額を出すとき ==SUMPRODUCT(B3:B6*C3:C6) と関数を書き(B3:B6の前後に()が要らないのも面白い) =B3*C3 =B4*C4 =B5*C5 =B6*C6 -------(+ 縦合計 と同じになります。 (2)で述べた良く使われる使われ方。 (例データ)A3:F10 さしあたりA,B、C列が当初データでD、E,F列は解説用です。 A列  B列   C列   D列  E列  F列 G列 a x 1 TRUE TRUE 1 1 b x 2 FALSE TRUE 2 0 c y 3 FALSE FALSE 3 0 d z 4 FALSE FALSE 4 0 a x 5 TRUE TRUE 5 5 b z 6 FALSE FALSE 6 0 c y 7 FALSE FALSE 7 0 a x 8 TRUE TRUE 8 8 D3に=A3="a"と入れて下へ複写します。 上記D列のようになります。 E3に=B3="x"と入れて下へ複写します。 上記E列のようになります。 F列は便宜上C列をコピーしてます。 G1に=D3*E3*F3といれ下に複写します。 G列のようになります。 G列の総和を取ると14であり、 =SUMPRODUCT((A3:A10="a")*(B3:B10="x")*(C3:C10)) も14です。(IFが出てこない。A3:A10の前後に()が不要も面食らうかも。) A列がaで、B列がXの行のC列の合計は14と求められます 。こう言う理屈です。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

A列が教科 B列が点数 C列が生徒 とした場合 =SUMPRODUCT((A1:A100="理科")*(B1:B100>=60)) 上記の式で、理科が60点以上の人数になります。 (条件1)*(条件2)はAND条件になります。 =SUMPRODUCT(((A1:A100="理科")+(A1:A100="国語"))*(B1:B100>=60)) 上記の式は理科か国語が60点以上の人数になります。 (条件1)+(条件2)はOR条件になります。 =SUMPRODUCT((C1:C100="日本太郎")*(B1:B100)) 上記の式は生徒が日本太郎の点数の合計になります。 (条件1)*(数値の範囲)は条件1を満たした数値の合計になります。

回答No.1

SUMPRODUCT関数は簡単に言うと、複数条件のデータを数えると言うのではなく、例えば、単価×数量=金額で、金額を集計する際、単価×数量を計算しないでも、直接金額の集計ができると言う関数です。

関連するQ&A

  • EXCELのSUMPRODUCTでエラーになります

    複数の条件を用いて集計をするのにSUMPRODUCTを使おうとしたら #VALUEエラーになります。 SUMPRODUCT((条件1)*(条件2)*(条件3)*(集計列))にすると #VALUEが出て、大かっこをはずすと0が返ります。 Oも答えではないので式が違っていると思われますが、 大かっこをつけると#VALUEが返るのが納得いきません。 宜しくお願いします。

  • エクセルのSUMPRODUCTについて

    SUMPRODUCT((A:A=A2)*(B:B="○")) + SUMPRODUCT((A:A=A3)*(B:B="○")) + … ↑これをA7まで続けて、一つのセルにまとめたいのですが、 簡潔にするにはどのように記述すればよいでしょうか?お願いします。 具体的には、↓のようなデータで、09:00~09:50までの○の数を数えたいのです 時刻  結果 09:00 ○ 09:10 × 09:20 ○ …   …

  • <エクセルSUMPRODUCTの使用と条件書式に関して>

    <エクセルSUMPRODUCTの使用と条件書式に関して> エクセルは合計と平均しか使用したことのない初心者です。 以下を求めたく、当サイトを拝見しておりましたが、合致するQ&Aが見当たらず (近いものはあるようなんですが、初心者すぎてうまく応用できませんで、、) 困ってお知恵を拝借したく、投稿します。 <状況> 列A1~A50、列B1~B50のセルに、1~30までの数字がランダムに入ってる。 ※エクセルは2000を使用しています。 <求めたいこと> (1)列A1~A50で「7と同等または7より大きい数字」が入っており、かつB1~B50で 「2と同等または2より大きい数字」が入ってるセルの個数を調べたい。 (2)上記の条件(A列で7以上、B列で2以上)のセルを網掛けしたい。 <試したこと/補足> ・「求めたいこと(1)」に関して、サイトを参考に以下を作成してみましたが、機能しなかったようです。  「SUMPRODUCT」を使用するのは検討違いでしょうか、、。 =SUMPRODUCT((A1:A50=">=7")*(B1:B50=">=2")) ・「求めたいこと(2)」に関して、条件が‘1以上のセル’などの場合は 「(書式→)条件付書式」を使用しております。が、上記のように「‘A列においては○以上’かつ ‘B列においては○以上’」のような複数の書き方はわかりません、、。 初心者で、状況の説明もつたなく恐縮ですが どなたかお力を頂けるとうれしいです。 どうぞよろしくお願いします。

  • SUMPRODUCT関数について

    皆様宜しくお願いします。 最近こちらでSUMPRODUCT関数をお教えいただいてから色々な集計に使っていて、かなり重宝しております。 ところで、私は簡単な集計にはSUMIF関数やCOUNTIF関数等を、複数条件にはSUMPRODUCT関数を使用しているのですが、集計作業においてSUMPRODUCT関数では出来ないものってどんなものでしょうか? お暇なときにご返答をいただければと思います。 宜しくお願いします。

  • SUMPRODUCT関数の条件

    SUMPRODUCT関数の条件 EXCEL2007です。 =SUMPRODUCT(($F18:$F332="*認知*")*($N18:$N332=I346)) などとして、条件に合ったセルの個数を求めたいのですが、="*認知*"は有効でしょうか? 有効でなかったら、このような"*認知*"の条件で行う場合、どうするのでしょうか?

  • SUMPRODUCT 複数条件と日付

    関数初心者です。Excel2000を使用しています。 SUMPRODUCT関数を使って複数条件の集計をしたいのですが、どうしても日付の列に反応してくれません。 おそらく原因はデータ元となる日付に時間まで入っているからではないかと思っています。 日付が入力されているセルのデータは 例) 2012/3/3 12:10:50 → セルの書式設定は 時刻のみ 12:10:50 集計したいのは複数条件 例) 2012/3/3 12:10:50 りんご 50  日付 と 商品名 を条件とし 数値 の合計を出したいです。 秒単位で時間計測しているのでこのデータ自体の変更と書式設定の変更は出来ません。 =SUMPRODUCT((B6:B12=B3)*(C6:C12=C3),(D6:D12)) B3のセルに「3/3」もしくは「2012/03/03」の入力で拾えるようにしたくて、 過去のの質問など参考にし(B6:B12=B3)の部分を変更しましたが、うまくいきませんでした。 やってみたことが的外れだったのかもしれません。 また、日付を条件とした場合、書式設定も影響されるのでしょうか? アドバイスをよろしくお願いします。

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

    複数条件を満たす合計を出したくて「SUMPRODUCT関数」を考え付いたのですが、「~で始まる文字」など曖昧な条件の時にはどのようにしたらよいのでしょうか? ワイルドカード文字(*)を使ってみたのですが、うまくいかず困っています。よろしくお願いいたします。 コード 摘要    収入 1   東組南東  100 1   北東組北西 150 1   東組北西  100  1   北東組南西 150 コード「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>

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

    エクセル2000です。 A列とB列の和にC列を乗じたものの合計は、 =SUMPRODUCT(A1:A10,$C$1:$C$10)+SUMPRODUCT(B1:B10,$C$1:$C$10) または =SUM(SUMPRODUCT(A1:A10,$C$1:$C$10),SUMPRODUCT(B1:B10,$C$1:$C$10)) のような長ったらしいものになるのでしょうか? =SUMPRODUCT((A1:B10)*C1:C10) は、表中に文字列が入る場合があるのでエラーになります。 ご教示いただければ幸いです。

  • エクセル「SUMPRODUCT関数」で困っています

    SUMPRODUCT関数 初心者です。 項目数15くらい、約10000件のデータベースから、3項目の条件でSUMPRODUCT関数を使って20種別×15種別の表を作成してみようと思いました。 …が、結果すべて0になってしまいます。 SUMPRODUCT関数の使い方(考え方)はあっていると思います。(小さい表で使ってみると正しく計算されるため) たしかに、SUMPRODUCT関数は沢山計算しているので、大きな?表を集計するのに向かないのでしょうか? そのあたりがわかりません。 ただ、ピボットテーブルで同じものを作成すると、さくさく完成します。 こんな漠然とした質問でお答えいだけるのか不安ですが、どなたかお詳しい方よろしくお願いします。

専門家に質問してみよう