• ベストアンサー

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

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

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.2です。 別シート(Sheet1)にデータが入っているときの式は、tikorockさんのお書きになった =SUMPRODUCT((Sheet1!A2:A5=1)*(LEFT(Sheet1!B2:B5,2)="東組")*(Sheet1!C2:C5)) であってるはずです。実際に試してみましたが、エラーにならず、ちゃんと数値が出ました。 逆にどうしたら#N/Aのエラーが出るか試してみると、 =SUMPRODUCT((Sheet1!A2:A6=1)*(LEFT(Sheet1!B2:B5,2)="東組")*(Sheet1!C2:C5)) のように、参照しているA,B,C列の範囲が違う(上の例だとA列だけ6行目までになっている)場合に、そのようになることがわかりました。 実際の表はもっとデータ量が多いかと思いますが、数式で指定した範囲がずれたりしていないか確かめてみてください。

tikorock
質問者

お礼

早速のご回答ありがとうございます! ham_kamoさんのご推測通り、A,B,C列の範囲が違っていました。このような場合には、指定範囲がずれるとエラーが出るのですね。大変勉強になりました。ありがとうございました!!

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

1行目がタイトル行で、A列、B列、C列にそれぞれコード、適用、収入のデータが入っているとして、 =SUMPRODUCT((A2:A5=1)*(LEFT(B2:B5,2)="東組")*(C2:C5)) とすればいかがでしょうか。 ただし、「北東組」から始まるものを探すときは、 =SUMPRODUCT((A2:A5=1)*(LEFT(B2:B5,3)="北東組")*(C2:C5)) のようにLEFT関数の引数をその文字数に変える必要があります。 条件の文字列をセルから取ってくる場合、たとえばD1に「東組」と書いてあって、それで集計したい場合は、 =SUMPRODUCT((A2:A5=1)*(LEFT(B2:B5,LEN(D1))=D1)*(C2:C5)) のようにすればよいでしょう。

tikorock
質問者

補足

ご丁寧な回答をありがとうございます。「LEFT」を使えばよかったのですね! 重ねて質問させていただきたいと思います。 コード、摘要、収入のデータがsheet1にあるとして、sheet2に数式を入れて合計を表示したい時は同じ要領でよいのでしょうか? =SUMPRODUCT((Sheet1!A2:A5=1)*(LEFT(Sheet1!B2:B5,2)="東組")*(Sheet1!C2:C5)) と入力してみたのですが、#N/Aのエラーが出てしまいました。 何度も申し訳ありませんが、ご回答いただけたらありがたいです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

=SUMPRODUCT((A2:A5=1)*(LEFT(B2:B5,2)="東組")*(C2:C5)) かな。

tikorock
質問者

お礼

早速のご回答ありがとうございます!

関連するQ&A

  • SUMPRODUCT関数について

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

  • 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について

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

  • SUMPRODUCT関数

    エクセル2003を使っています。 sumproduct関数で条件付の合計計算をしたいのですが 計算できる列とできない列があります。 計算可能な書式をできない列にコピーしても変わらなくエラーになります。(#VALUE!) 試しに同じ数値をCSVで保存したシートでは計算できました。 考えられる要因と対策は何でしょうか。

  • SUMPRODUCTで文字列を無視したい

    いろいろ検索してみたのですが、 よくわからないので助けていただきたいです。 エクセル関数の初心者(入門者)です。 複数条件の合計で =SUMPRODUCT(($E$5:$E$27=$E$33)*($D$5:$D$27="○○")*(BT$5:BT$27)) という関数を入力しました。 BT列には、文字列も入力してありますので 文字列がある場合はエラーになってしまいます。 文字列を無視する方法はありませんか? 恐れ入りますが、よろしくお願い致します。 ※DSUMはふさわしくありません。

  • 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の特徴ですが、   ・結果を出させるセルは同一シート内にあり、また印刷時は同一用紙に表示させる  ・結果を出させるセルは見栄えの問題で結合させてある という具合です。。。 何かよい方法はありますでしょうか? 宜しくお願いいたします。

  • 【Excel】 SUMPRODUCT関数の高速化

    複数条件に当てはまるものを計数するのにSUMPRODUCT関数を多用したせいか,再計算に非常に時間がかかり困っています.再計算を手動にして,保存時も再計算しない設定にしてしのいでいますが,計算自体を速くするにはどうすればいいでしょうか.SUMPRODUCT以外の関数で同様のことができるもっと速い代替策があれば,そちらもご教示下さい.

  • エクセルの関数の件でご質問です。

    エクセルの関数の件でご質問です。 以下の通りのデータがあって複数の条件で計算をしたい場合、どうしてもうまく関数が作れません。 A   B   C 新聞 2   1500 雑誌 3   1900 新聞 2   2000 TV  4   5000 (1)新聞(A)で2(B)以上のBの合計 (2)新聞(A)でのCの値の合計 (1)ではSUMPRODUCTを用いて算出をしようと試みましたが正しい数値になりません。 (2)はSUMPRODUCTではなくてもいいような気がします。 どの関数を用いて上記の条件で算出するにはどうしたらよいのでしょうか? どなたか教えてください。

  • エクセル sumproduct関数の条件何でもありの場合

    SUMPRODUCT関数を用いて、A1=A3かつA2=A4であるかどうかを判定したくて次のように作ってみました。 =SUMPRODUCT((A1=A3)*(A2=A4)) A1とA2を参照元としてここにいろいろ入力して確かめたいのですが、A1は何でもありでA2=A4という条件のみで判定したいこともあります。ワイルドカード*や?も使えないようで困っています。どのようにすればよいのでしょうか?

専門家に質問してみよう