- ベストアンサー
エクセル 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 に変えるという回答以外でお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 SUMPRODUCT の基本形を使ったほうがよいかもしれません。 引数の中で演算するのではなくて、それぞれの引数においてあげればよいと思います。 ="" でなくても、文字でも構いません。 もともと、SUMのついた関数は、文字は読まないで、0で扱うように作られています。だから、引数は、配列ですから、配列のまま入れます。 =SUMPRODUCT(A1:A5,B1:B5,(C1:C5="A")*1) 他には、Lotus123系の、N関数を使うと、このようになります。 =SUMPRODUCT(N(OFFSET(A1,ROW(A1:A5)-1,))*(B1:B5)*(C1:C5="A")) しかし、こちらは、あまり上手くありませんね。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 SUMPRODUCT(配列1,配列2) ということは、こういうことですか? =SUMPRODUCT(A1:A5,B1:B5*(C1:C5="A")) 配列1, 配列2 になっていますね。
お礼
ありがとうございます。 安心しました。
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 数式に不足箇所がありましたので訂正します。 =SUM(IF(C1:C5="A",IF(A1:A5<>"",A1:A5*B1:B5)))
お礼
ありがとうございます。 CSE数式はどうも敷居が高くて苦手なのですが、正答を返すことを確認しました。
- cafe_au_lait
- ベストアンサー率51% (143/276)
=SUMPRODUCT(VALUE("0"&A1:A5)*(B1:B5)*(C1:C5="A")) でいかがでしょうか。
お礼
cafe_au_laitさん、ありがとうございました! そうか、計算上で、"" を0に変換してしまえばいいんですよね。 何と柔軟な頭脳をお持ちの方でしょう、感心しました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =SUM(IF(C1:C5="A",IF(A1:A5<>"",A1:A5))) 配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
お礼
ありがとうございます。
お礼
Wendy02さま、いつも大変おせわになりありがとうございます。 SUMPRODUCT の基本形は、SUMPRODUCT(配列1,配列2,配列3,..)でしたね。 この基本形に(C1:C5="A")という条件を付加できるとは存じませんでした。 =SUMPRODUCT(A1:A5,B1:B5,(C1:C5="A")*1) はSUMPRODUCT(配列1,配列2,配列3)だと思いますが、 =SUMPRODUCT(A1:A5,B1:B5*(C1:C5="A")) と SUMPRODUCT(配列1,配列2) 書き変えることが可能でしょうか? やってみると同じ答えを返すようですが、自信ありません。