アプリ版:「スタンプのみでお礼する」機能のリリースについて

大変こまっております。みなさまのお力を貸してください!よろしくお願いします。

以前、このような質問がありました、


 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とでてきてほしいのですが・・
よろしくお願いします!!

A 回答 (7件)

複数条件該当分集計はSUMPRODUCTか配列数式やDSUMの問題であることは間違い有りません。


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

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



とすれば、とりあえずデータが文字列でも数値でも対応できますが。
(さらにスペースを取り除くような作業が必要なら、それは対応していません。念のため。)

しかしDSUM関数は誰も顧みないんだなあ・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/02 16:59

>データ群を他のシートからコピーし、ペースト、そのデータを使い、まったく同じように宣言文を組みました。

その場合答えが0になってしまします・・・なぜでしょう??データーに不備があるのでしょうか??

そのデータ群はExcelで作られたものですか?
Accessから取り入れたものだとかだとExcelでは上手く数値として認識しない場合があるようですが・・・。
そのデータ群に「1」を乗算貼り付けしてみてはいかがでしょう?
    • good
    • 0

》 SUMIFで複数の条件を指定することできるのでしょうか?



出来ません。

この回答への補足

SUMIFで複数の条件を指定することできるのでしょうか?

は前の人の文です。

私の質問はその下からからです。

お願いします。

補足日時:2006/07/01 03:28
    • good
    • 0

={SUM((A1:A6=300)*(B1:B6=5000)*(C1:C6))}


でも 500 の結果が得られますね。(配列関数)

=SUM((A1:A6=300)*(B1:B6=5000)*(C1:C6))
と入力してShift+Ctl+Enterで入力してください
    • good
    • 0

""で囲むと「文字列」を指定したことになるから。



"を取り除いてください。

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

この回答への補足

ありがとうごさいます!!しかし、""をはずしたところ、なりました!!

しかし、ならないときがあります!
それは、データ群を他のシートからコピーし、ペースト、そのデータを使い、まったく同じように宣言文を組みました。その場合答えが0になってしまします・・・なぜでしょう??データーに不備があるのでしょうか??

ちなみにまったくおなじデータ群を自分で作り直しやったところうまくいきます。原因はなんなのでしょうか??

お忙しいとはおもいますが、よろしくお願いします。

補足日時:2006/07/01 03:30
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!