• ベストアンサー

エクセル関数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) は、表中に文字列が入る場合があるのでエラーになります。 ご教示いただければ幸いです。

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

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

=SUMPRODUCT(A1:B10,$C$1:$C$10*{1,1}) でだめなら =SUMPRODUCT(A1:B10,CHOOSE({1,2},$C$1:$C$10,$C$1:$C$10)) でしょうけど >=SUMPRODUCT(A1:A10,$C$1:$C$10)+SUMPRODUCT(B1:B10,$C$1:$C$10) でよいと思います

merlionXX
質問者

お礼

ありがとうございます。 =SUMPRODUCT(A1:B10,CHOOSE({1,2},$C$1:$C$10,$C$1:$C$10)) で大丈夫でした。 ただ、よく意味がわかりません。 もしお手数でなければCHOOSEで何をしているのかご教示いただけると幸いです。

その他の回答 (1)

  • felicior
  • ベストアンサー率61% (97/159)
回答No.1

(A+B)*Cの合計ですか? =SUMPRODUCT((A1:A10+B1:B10),C1:C10) ではできませんか? SUMPRODUCTを使わなくても =(A1:A10+B1:B10)*C1:C10 と入力してshift+ctrlを押しながら確定すると同じことができます。 文字列を避けるのは難しいんじゃないでしょうか。

merlionXX
質問者

お礼

ありがとうございます。 =SUMPRODUCT((A1:A10+B1:B10),C1:C10) では文字列が入った場合、エラーになります。 CSE数式はちょっと苦手でして・・・。 勉強になりました。

関連するQ&A

  • エクセル SUMPRODUCT関数でこんな場合は?

    Excel2000です。 添付画像のような表があります。 A列、B列に数値、C列に文字列です。 A列の数値は単なる数値ではなく、計算式で求められています。 したがって表内A列の何も表示されていないセルは、計算の結果 ="" になったものです。 B列の数値は直接入力した単なる数値です。 この表で仮に、C列がAの場合のA列合計を求めるため、D6に =SUMPRODUCT((A1:A5)*(B1:B5)*(C1:C5="A")) としてみましたが、="" を乗じているためVALUEエラーになります。 =""を排除しようと、 =SUMPRODUCT((A1:A5<>"")*(A1:A5)*(B1:B5)*(C1:C5="A")) としてみましたが、やはりVALUEエラーになります。 こういう場合はどうしたらよいのでしょうか? ="" を =0 に変えるという回答以外でお願いいたします。

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

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • エクセル SUMPRODUCT関数でOR検索

    添付画像のような表があります。 '=SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="B")*ROW(A:A)) で、B列が男、C列が新潟、B列がB のデータがある行番号を返してくれます。 B列がBではなく、B列がAまたはABのデータがある番号を検索する場合はどうかなと思い、 '=SUMPRODUCT((B:B="男")*(C:C="新潟")*OR((D:D="A"),(D:D="AB"))*ROW(A:A)) としてみたら、該当データがないにもかかわらずB列がBの行番号が帰りました。SUMPRODUCTで検索する場合、ORを使う場合はどのように書けばよいのでしょうか? ’=SUM(SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="A")*ROW(A:A)),SUMPRODUCT((B:B="男")*(C:C="新潟")*(D:D="AB")*ROW(A:A))) のようにそれぞれを求めて合算するしかないのでしょうか?

  • エクセルの関数(SUMPRODUCT?)

    ご存知の方がいらっしゃいましたら教えていただけたら幸いです。  A列 B列  C列  D列… 1 ID 部名 課名 都道府県… 2 1  A   a   北海道 3 2  A   c   大阪 4 3  A   b   東京 5 4  A   a   東京 6 5  A   a   福島 [シート名:入力]   A列  B列  C列 D列  E列… 1 地域   a   b  c   合計(←上記シート「入力」の課名) 2 北海道 2(Q2) 0  0   2(Q3)   東北 3 東京  1(Q1) 1  0   2 4 関西  0    0  1   1 [シート名:合計] (Q1)=SUMPRODUCT((入力!$C$2:$C$6="a")*(入力!$D$2:$D$6="東京")) で、地名を1つにしている場合は問題なく反映されています。 (Q2)★ここが一番聞きたいところです★ =SUMPRODUCT((入力!$C$2:$C$6="a")*(入力!$D$2:$D$6="北海道")*(入力!$D$2:$D$6="青森")*(入力!$D$2:$D$6="岩手")*(入力!$D$2:$D$6="宮城")*(入力!$D$2:$D$6="秋田")*(入力!$D$2:$D$6="山形")*(入力!$D$2:$D$6="福島")) で、エラーがでてしまいます。(イヤミではないんですが…)東京など大きなところでは(1)の処理でよいのですが、例えばここだと北海道や青森、秋田…とあまりその都道府県だけでは数の少ないところは「地域」として「北海道・東北」とまとめたく、上の式では、 「aの課で、且つ北海道か、青森か、岩手か、宮城か、秋田か、山形か、福島であればカウントする」としたいのです。 ちなみに(2)の式を入力すると、エラーは出ないのですが該当するものがあるにも関わらずゼロ(2ではなく0)と表示されてしまいます。 (Q3)よって、本当であればここの関数も 「aの部で、且つaの課で、且つ北海道か、青森か、岩手か、宮城か、秋田か、山形か、福島であればカウントする」としたいところ、(2)でつまずいてしまっているため、E2のセルの表示「2」はそのシートのB2-D2のSUM関数で合計を出しているという状況です。 (3)は以上のような対処で問題はないかと思いますが、(2)の部分はどうしても表示されません。 前任者のデータを引き継ぐ形となり、去年とは少し違う形式になるに伴い出てきた問題です。できれば去年のものをできるだけ引き継ぎたいと考えているのですが…何か良い方法があれば教えて頂ければ幸いです。

  • Excel)SUMPRODUCT関数で・・・

    今まで困ったときにこちらで色々調べて答えを見出していた者です。 いつも参考にさせていただきありがとうございます。 ついに、うまいこと調べたいことが見つけ出せなくなってしまったため質問をさせてください。 ■基データ    A     B    C      D    ――――――――――――――――――――― 1 氏名   形式   内容    金額 2 やまだ   A   りんご   50,000 3 さとう   B   バナナ    8,000 4 やまだ  (A)  みかん  ▲30,000 5 すずき   B   もも     6,000 6 たなか   C   ぶどう    5,000 7 さとう  (B)  キウイ   ▲4,000 というデータがあるとします。(明細みたいなもの) これを氏名(A列)と形式(B)列の条件で金額(D列)の合計を 別の表(集計表みたいなもの)に結果を出したいと思っています。 以前こちらで調べて、「SUMPRODUCT」関数が適していると思い 試してみました。そして結果も得られていました。 ですが、条件がちょっと複雑になってしまい、その関数での 対応が可能かどうかお知恵をお貸しいただきたいと思います。 または、別の方法(ピボットテーブルは対象外とさせてください) がありましたらご教示下さい。よろしくおねがいします。 【今までの条件設定(結果表示したいセルへの入力式)】  <氏名がやまだで形式がAの場合の金額の合計>  =SUMPRODUCT(($A$2:$A$7="やまだ")*($B$2:$B$7="A"),$D$2:$D$7)   ※さとう・すずき・たなかもそれぞれ求めます。   ※形式B・Cもそれぞれ求めます。(そして当初は形式に「()」の表示はありませんでした。) 【条件の変更によって結果を求めたいこと】  ■氏名別は変わらず、形式は「()」のあるなし関わらず   [Aも(A)も同じ扱い]として金額の合計を求めたい。   上記の場合ですと、「やまだのA・(A)の合計値」と   「さとうのB・(B)の合計値」を算出する数式を知りたいです。 Bookの特徴ですが、   ・結果を出させるセルは同一シート内にあり、また印刷時は同一用紙に表示させる  ・結果を出させるセルは見栄えの問題で結合させてある という具合です。。。 何かよい方法はありますでしょうか? 宜しくお願いいたします。

  • SUMPRODUCT関数について

    SUMPRODUCT関数を使いA列の対象値(LEFT関数を使い左一文字を検索対象としC列の該当値の合計を集計していますがLEFT関数で検索対象を複数にする場合はどのようにすればいいのでしょうか? 下記の場合はsとdを検索対象としたいのですが。 宜しくお願いいたします。   A  B  C 1 sb    20 2 sc    30 3 sd    40 4 db    50 5 dc    60

  • SUMPRODUCTとワイルドカード

    こんばんは。 <例>     A     B   C    (D) 1 北海道  500  100  =B1*C1 2 青森県  400  150  =B2*C2 3 新潟県  200  200  =B3*C3 4 東京都  200  100  =B4*C4 5 沖縄県  250  100  =B5*C5              合計=SUM(D1:D5) 作業列(D列)を作らず合計を求めるには、 =SUMPRODUCT(B1:B5,C1:C5) でできると思います。 ただ、ここに「県のみ合計」という条件が入った場合について質問します。 例のように作業列(D列)を作り、SUMIFですれば簡単にできるのですが、「作業列を作らず、SUMPRODUCTとワイルドカード(*県)を使って」数式を組み立てるにはどうすればいいのでしょうか? ステップ(D列)を踏まず、ひとつの数式だけで完結したいのです。 試行錯誤していますが、簡単そうなのになかなかうまくいきません…。 D1=COUNTIF(A1,"*県")で以下オートフィルコピーし、 =SUMPRODUCT(B1:B5,C1:C5,D1:D5) とすればできますが、結局作業列(D列)を作ってしまっていますし…。 あと…たとえば最初に示した数式なら、 =SUMPRODUCT((B1:B5)*(C1:C5)) という数式の組み方を回答でよく見かけますが、 =SUMPRODUCT(B1:B5,C1:C5) =SUMPRODUCT(B1:B5*C1:C5) としないのは、何か意味の違いがあるのでしょうか? お詳しい方よろしくお願いします。 Vista Excel2007です。

  • SUMPRODUCT関数で0(ゼロ)と

    はじめまして。arumikan091と申します。 (Excel初心者です(^^;) ExcelのSUMPRODUCT関数について質問があります。 A B (1) 2 0 (2) 2 4 (3) 2 (空白) (4) 2 3 (5) 2 0 (6) 3 4 (7) 3 (空白) というシートの中で、 "A列が2で、かつB列が0の個数を数える" ということをしようと思い =SUMPRODUCT((A1:A7=2)*(B1:B7=0)) と入力したのですが、 これだとB列の0(ゼロ)と一緒に""(空白)も 数えられてしまうようです。 (上記シートだと式の期待値は2なのですが、 実際値は3が返ってきます) このような場合、0(ゼロ)だけを数えられる ようにするにはどのようにすればいいか 教えていただけたら幸いです。 一応、自分でも少ない知識の中で色々トライしてみて、 =SUMPRODUCT((A1:A7=2)*(B1:B7=0))-SUMPRODUCT((A1:A7=2)*(B1:B7="")) のように式を入力するとちゃんと0(ゼロ)だけを 数えてくれるようなのですが、さらに簡単な 方法がありましたら教えてください。 Windows ME、Excel2000です。 ※1 B列単独で =COUNTIF(B1:B7,0)とするとちゃんと 0(ゼロ)だけを数えてくれます。 ※2 一応既存のQ/A集で同じ質問がないか探しましたが、 (「SUMPRODUCT 空白セル」のANDで) 同様、類似の質問が既にありましたら 申し訳ありません。 長文失礼しました(m_ _m

  • ExcelでのINDIRECT関数の使い方について

    Excelの関数についてお伺いしたいと思います。現在、図のような表があり、A2, C2, E2を合計したいと思っております。条件として; 1) 列を頻繁に挿入するものの、常にA2, C2, E2を合計したい(セルがずれてしまっては困る) 2) B列やD列には他の数値が入るため(列が連続しない)、A2:E2ということができない これを解決するためにA8に"A2,C2,E2"と入力し、A9に=SUM(INDIRECT(A8)と記入したのですが、#REF!というエラーになってしまいます。この場合、どのようにIndirect関数を使えばよいのでしょうか。またそもそもIndirect以外の有効な関数を使うべきなのでしょうか。教えていただきたく、よろしくお願い致します。

  • 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ではどうなるんでしょうか。

専門家に質問してみよう