【Excel】複数の条件を満たす合計を出す関数

このQ&Aのポイント
  • Excelで複数の条件を満たす合計を出す方法について質問です。SUMIF関数で複数の条件を指定できるのか、宣言文を使う方法を試してもうまくいきません。どこが間違っているのか教えてください。
  • 具体的な例として、りんごとふじの条件を満たす場合の購入数の合計を出したいです。SUMIF関数や宣言文を使用していますが、数字に変換すると答えが0になってしまいます。どのようにすれば正しい合計が求められるのか、アドバイスをお願いします。
  • 数列の中から特定の条件を満たす時の合計を求めたいです。A列とB列に特定の数字を指定し、その条件下でC列の合計を求めたいです。SUMPRODUCT関数を使用していますが、何か間違っているようで正しい結果が得られません。どこが問題なのか教えてください。
回答を見る
  • ベストアンサー

:【Excel】複数の条件を満たす合計を出す関数

大変こまっております。みなさまのお力を貸してください!よろしくお願いします。 以前、このような質問がありました、  A    B    C 1 果物  銘柄  購入数 2 りんご ふじ  21 3 りんご 王林   3 4 ぶどう デラ  15 5 ぶどう 巨峰  16 6 りんご ふじ   2 7 ぶどう 巨峰   7 上記のような表があります。 別な場所に、りんご&ふじの条件を満たす場合の購入数の合計を出したいのですが、関数を教えて下さい。 SUMIFで複数の条件を指定することできるのでしょうか? そして、もちろん以下のような宣言文で可能なのですが、 SUMPRODUCT((A1:A7="りんご")*(B1:B7="ふじ")*(C1:C7)) なのですが、りんご、ふじの部分を数字にしてしまうと答えが0となり出てきません!! すごくこまってます・・・ なぜなのでしょうか?? まったく同じ宣言文で、宣言文ないの文字列に確答すつ数字を入力してます。 ちなみに下記のような場合です。 A  B    C 1 300 4000  200 2 300 5000   200 3 300 2000   200 4 400 4000  200 5 300 5000  300 6 500 2000   300 という数列があるとします。 んでやりたいことは、 複数の条件(2つ)を満たす時のC列の合計。 つまりは、A列の特定の数字とB列の特定の数字を満たすときの、C列の合計。 を出したいんです。 =SUMPRODUCT((A1:A6="300")*(B1:B6="5000")*(C1:C6)) と打ったのですが、どこか間違ってる点を教えて下さい。 これでゆうと、答えは500とでてきてほしいのですが・・ よろしくお願いします!!

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

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

複数条件該当分集計はSUMPRODUCTか配列数式やDSUMの問題であることは間違い有りません。 質問者のデータの問題だと思います。 >データ群を他のシートからコピーし、ペースト、そのデータを使い、まったく同じように宣言文を組みました。その場合答えが0になってしまします・ 初めの質問者の提出した関数が、文字列と数値の認識が甘かったわけですが、コピーしてきたデータで、その列のデータが、今度は逆に数値ではないのだと推測します。画面には見えないスペースやTABなどが入っている可能性があり、=ISNUMBER(A1)などで、サンプル的にチェックしてください。 >以下のような宣言文 「宣言文」とは言わないと思います。関数、関数文だと思います。 関数文とも言わないと思いますが(WEB照会で4例しか出ないから) プログラム関係やXML関係では宣言文はあると思いますが、エクセルでは(VBAを除き)使わないはず。

その他の回答 (6)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.7

=SUMPRODUCT((A1:A6*1=300)*(B1:B6*1=5000)*C1:C6) とすれば、とりあえずデータが文字列でも数値でも対応できますが。 (さらにスペースを取り除くような作業が必要なら、それは対応していません。念のため。) しかしDSUM関数は誰も顧みないんだなあ・・・

kabunusi
質問者

お礼

問題が解決しました!!まことにありがとうございました!やはり、問題は、データーにスペースがあったことによるものでした。関数の式にデーターにある同じ数のスペースを打ったところ、うまくいきました!本当に助かりました!ありがとうございました。

  • chi-fuku
  • ベストアンサー率14% (1/7)
回答No.6

>データ群を他のシートからコピーし、ペースト、そのデータを使い、まったく同じように宣言文を組みました。その場合答えが0になってしまします・・・なぜでしょう??データーに不備があるのでしょうか?? そのデータ群はExcelで作られたものですか? Accessから取り入れたものだとかだとExcelでは上手く数値として認識しない場合があるようですが・・・。 そのデータ群に「1」を乗算貼り付けしてみてはいかがでしょう?

noname#204879
noname#204879
回答No.4

》 SUMIFで複数の条件を指定することできるのでしょうか? 出来ません。

kabunusi
質問者

補足

SUMIFで複数の条件を指定することできるのでしょうか? は前の人の文です。 私の質問はその下からからです。 お願いします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

={SUM((A1:A6=300)*(B1:B6=5000)*(C1:C6))} でも 500 の結果が得られますね。(配列関数) =SUM((A1:A6=300)*(B1:B6=5000)*(C1:C6)) と入力してShift+Ctl+Enterで入力してください

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

""で囲むと「文字列」を指定したことになるから。 "を取り除いてください。 =SUMPRODUCT((A1:A6=300)*(B1:B6=5000)*(C1:C6))

kabunusi
質問者

補足

ありがとうごさいます!!しかし、""をはずしたところ、なりました!! しかし、ならないときがあります! それは、データ群を他のシートからコピーし、ペースト、そのデータを使い、まったく同じように宣言文を組みました。その場合答えが0になってしまします・・・なぜでしょう??データーに不備があるのでしょうか?? ちなみにまったくおなじデータ群を自分で作り直しやったところうまくいきます。原因はなんなのでしょうか?? お忙しいとはおもいますが、よろしくお願いします。

回答No.1

=SUMPRODUCT((A1:A6=300)*(B1:B6=5000)*(C1:C6))

関連するQ&A

  • 【Excel】複数の条件を満たす合計を出す関数

     A    B    C 1 果物  銘柄  購入数 2 りんご ふじ  21 3 りんご 王林   3 4 ぶどう デラ  15 5 ぶどう 巨峰  16 6 りんご ふじ   2 7 ぶどう 巨峰   7 上記のような表があります。 別な場所に、りんご&ふじの条件を満たす場合の購入数の合計を出したいのですが、関数を教えて下さい。 SUMIFで複数の条件を指定することできるのでしょうか?

  • Excel関数:文字を含む複数条件の合計

    関数の達人の方、教えてください! A B C D E F ―――――――――――――――――――――――― 1 | 商品名    A社   B社  C社  A社  C社 2 | AA (1) 1 1 (2) 2 3 | BB 1 1 1 2 2 4 | ab AA (1) 1 1 (2) 2 5 | ab BB 1 1 1 2 2 6 | ab AA cd (1) 1 1 (2) 2 7 | ab BB cd 1 1 1 2 2 ―――――――――――――――――――――――― この表から「A社のAAを含む合計=合計9」を出したいです。つまり○数字になっているところの合計です。 自分なりに以下で試したところ、いづれも「0」となってしまいました。 =SUMPRODUCT((A2:A7="*AA*")*(B1:F1="A社"),(B2:D7)) =SUMPRODUCT(((A2:A7="*AA*")*(B1:F1="A社")),(B2:D7)) 列ごとで AA を含む合計を一旦計算することはできましたが、A社は複数列あるため、できれば一度に A社 の該当する合計を出せればと思っています。 =SUMIF(A2:A7,"*AA*",B2:B7) → 合計3 よろしくお願いいたします。

  • EXEL2000 複数条件で集計を求める関数式

    検索範囲のA列における検索条件が[A5001]セルと同じ値、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計は =SUMPRODUCT((A1:A5000=A5001)*(B1:B5000=B5001)*C1:C5001) では、検索範囲A列が検索条件が[A5001]セルと同じ値の文字列を含むもの、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計をする場合に (たとえば、リストの A列データの値は、青森リンゴ、長野リンゴ、和歌山ミカン等、 B列データの値は、大、中、小等、 C列データの値は、その売上高、 検索条件[A5001]セルの値が[リンゴ]、 [検索条件B5001]セルの値が[大]である場合に、 リンゴという文字列が含まれており且つ大であるものの売上合計金額を求める) =SUMPRODUCT((A1:A5000="*"&A5001&"*")*(B1:B5000=B5001)*C1:C5001) を試しましたがだめでした。 これとは別に、 =SUMPRODUCT(COUNTIF(A1:A5000,"*"&A5001&"*")/COUNTIF(A1:A5000,"*"&A5001&"*"))*(B1:B5000=B5001)*C1:C5001) も試しましたがだめでした(数日前にこちらで教えていただきまして、行数が10行程度の仮のリストで試しましたらうまくいきましたが、実際のリスト(5000行以上)では#VALUE!が返ります。リストは「値のみ貼付」で得られたデータのみが入っています) このリストで、5001行以降に検索条件が多数並んでいます。 EXEL2000で可能な関数式を教えて下さい。よろしくお願いします。

  • 縦に複数条件がある場合の合計値

    エクセル2003です ネットで検索したら横に複数条件がある場合は、SUMPRODUCTなどを使うといいというのはわかったのですが 縦に複数条件ある場合は、SUMIFで足してくしかないのでしょうか? 例えば A列      B列 果物     個数 みかん    3 りんご    2 バナナ    1 りんご    2 みかん    5 D2 りんご D3 みかん と言うデータがあり みかんとりんごだけの合計値がほしい場合は =SUMIF(A:A,D2,B:B)+SUMIF(A:A,D3,B:B) でもとめられますが、 もっと簡素化したいです。 (あまり「+」は使いたくない) SUMIFをまとめられますか? もっと効率のいい関数があれば教えて下さい。 よろしくお願い致します。

  • Excelでの条件付合計関数について

    お世話になります。 Excelで以下のような複数の条件での合計値の算出を行いたいのですが、 上手く算出できません。 環境:WindowsXP,Excel2000 名前   色    値段 りんご  赤    100 りんご  青    150 りんご  赤    100 ぶどう  赤    200 ぶどう  青    200 上記のようなリストがあるとき、 「名前がりんごで色が赤なら金額を合計する」 「名前がぶどうで色が青なら金額を合計する」 などのように2つの条件に一致する場合、別のセルの合計金額を算出したいのですが、SumIF関数だと条件を一つしか設定できない、 また、DSUM関数だと違う条件に都度タイトルを設けなくてはならないため、 どのように算出して良いかわからず困っています。 Sum(If(AND(A1:A5="りんご",B1:B5="赤"),C1:C5) などのようにしても上手く計算されませんでした。 どなたかアドバイス頂ければ幸いです。 よろしくお願い致します。

  • Excel関数:文字を含む複数条件の合計 (3)

    先日、「Aという文字が含まれるX社の合計、しかし"例外"という文字が含まれている場合は合計しない」に対し、 =SUMPRODUCT((ISNUMBER(FIND("A",A2:A15)))*(ISERROR(FIND("例外",A2:A15)))*(B1:F1="X社")*(B2:F15)) を教えていただき、解決しました。      A           B    C   D    E    F   ――――――――――――――――――――――――― 01 |商品名        X社  Y社  Z社   X社  Y社 02 |A            1    1    1    1    1 03 |A 例外        1    1    1    1    1 04 |B            (1)   1    1    (1)    1 05 |B 例外        1    1    1    1    1 06 |C            (1)   1    1    (1)    1 07 |C 例外       1    1    1    1    1 08 |A B         1    1    1    1    1 09 |A B 例外     1    1    1    1    1 10 |A C         1    1    1    1    1 11 |A C 例外     1    1    1    1    1 12 |B C         (1)   1    1    (1)    1 13 |B C 例外     1    1    1    1    1 14 |A B C       1    1    1    1    1 15 |A B C 例外   1    1    1    1    1 今回求めたいと思っている合計の条件は  条件1. B または C、または両方が含まれる X社の合計  条件2. "例外"という文字が含まれている場合は合計しない  条件3. B または C と記載があっても A も含まれている場合は合計しない  注意1. X社は複数列あります。  注意2. B2:F15の数値は分かりやすくすべて「1」にしていますが実際には異なります。  注意3. 実際には 「A/B/C/例外」 以外の文字や数字が商品名には含まれています。 答えは上図(1)の箇所、合計6 です。 試行錯誤しながら試みましたが断念。自分の頭を整理するために、見づらいですがイメージ図を作ってみました(ご参考になれば)          ______        /    A     \      /               \     |      ●        |       |___     ___ |    /\ ●  \/  ●  / \   /     \ /● \ /       \ |        | __ |         | |  ●   |      |   ●    | |      |  ●  |         |  \       \   /         /     \B__/ \__C__/ ABCという3つの円・範囲が、それぞれ重なりあっている。 除外する必要のある "例外"は図では●と表記。例外=●は不特定場所にある。 この図の下段3箇所の合計の内、"例外"を除いた値の合計を求めたいということになります。 ・ B枠の重なっていない範囲、内●は除く ・ C枠の重なっていない範囲、内●は除く ・ B枠とC枠のみ重なっている範囲、内●は除く これを、関数で導きだすことは可能でしょうか。。。 ご検討の程、よろしくお願いいたします。

  • エクセル関数で複数条件を 探す

    表1で、A1 りんご B1 あまい       A2 ぶどう B2 まずい という表があります。   表2で、A1 りんご少しあまい       A2 ぶどうとてもまずい という表があります。  表1の「りんご」と「あまい」のふたつの条件を満たすものを表2のA列で探すという作業をしているのですが、関数を使って簡単に探す方法はありますか?  ちなみに今は 表1のA1とB1のふたつの条件を「りんご*あまい」としてCtrl+Fで 表2のA列で検索して 一致したら ○を 横につけていくという地道な作業をしています。4000件近くありますので何かいい方法ありましたらよろしくお願いいたします。

  • 複数の検索条件の合計

    複数の検索条件がある場合の結果の合計を求める関数を教えてください。 例えばA列にりんご・みかん・ばなな・りんご・りんごがあり B列に値段(100円・200円・100円・150円・100円) C列に個数(3・2・2・3・1)があるような場合で りんごの中で100円で販売した個数の合計(この場合4)、というような。 説明が雑ですがよろしくお願いします。

  • 複数の条件が一致する合計。

    複数の条件に一致する合計を求める方法には、 =SUM(IF(A1:A10="○",IF(B1:B10="○",C1:C10,0),0)) とセルに入力し、Ctrl+Shift+Enter =SUMPRODUCT((A1:A10="○")*(B1:B10="○")*(C1:C10)) があると思うのですが、このそれぞれの範囲の部分を列全体で指定したいんです。 ですが、A:Aのようにするとエラーになるし、A1:A65536にすると計算(再計算)にすごく時間がかかります。 SUMIFだと列全体を指定してもすぐ計算(再計算)されるのですが、条件が複数になったときでも列全体を指定できてすぐ再計算される方法はないですか?

  • 《エクセル2000》複数条件の合計(文字数字混在)

    こんにちは。 A・B列に1~3までの数字・C列に任意の数字が入っています。 A列及びB列に1が入っている行のみ、Cの数字を合計したいです。 仮に1~100行にデータがある場合、関数の式は =SUMPRODUCT((A1:A100=1)*(B1:B100=1)*(C1:C100)) …になると思うのですが、A1~C100のセルの中に、ランダムで全角文字が入っているせいか、計算結果が#VALUE!になってしまいます。 ISNUMBERを使えばいいのかとも思いますが、イマイチぴんときません… 詰めの甘い私に、どうかご教授をお願いします。

専門家に質問してみよう