- ベストアンサー
SUMPRODUCT関数
エクセル2003を使っています。 sumproduct関数で条件付の合計計算をしたいのですが 計算できる列とできない列があります。 計算可能な書式をできない列にコピーしても変わらなくエラーになります。(#VALUE!) 試しに同じ数値をCSVで保存したシートでは計算できました。 考えられる要因と対策は何でしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
NO1です。 >計算できない列の、合計データー列範囲に、0と空白が混在していました。 ⇒この空白がミソで未入力なら「0」と等価ですが「スペース」が入力されていると文字列となりVALUEエラーになります。 >条件範囲を変更する必要はありませんでした。 ⇒今回は空白セルに「0」を入力すればエラーになりませんが、仮に前述のような場合、 前回答での数式例にしておくとエラーにならないというだけです。 >そして奇妙な現象ですが、計算できなかった列の空白を0に置き換えて、 >計算値を正常に出した後、再度数箇所を空白にしてもエラーが出ませんでした。 ⇒対象のセルをdeleteしたのであれば未入力になりますので当然エラーにはならない。
その他の回答 (1)
- mu2011
- ベストアンサー率38% (1910/4994)
>計算可能な書式をできない列にコピーしても変わらなくエラーになります。(#VALUE!) ⇒エラーは数値以外での四則演算です。 条件判定列と対応データ列のand(乗算)して合計していると思うが、その対応データ列に別数式によって空データ("")となっているセルがあるとこのような結果になる。 因みにCSVに保存すると空データセルは未入力セルとなるので「0」として計算するのでエラーにならない。 例えば、、=SUMPRODUCT((条件範囲=条件)*(データ列範囲))となっているのならば、 =SUMPRODUCT((条件範囲=条件)*1,データ列範囲))としてはどうでしょうか。
お礼
回答ありがとうございます。 計算できない列の、合計データー列範囲に、0と空白が混在していました。 条件範囲を変更する必要はありませんでした。 合計データー範囲の空白部分を全て0にすると計算してくれました。 そこが原因かと思うのですが、もともと計算できている合計列は、 0のみ、もしくは空白のみでした。 そして奇妙な現象ですが、計算できなかった列の空白を0に置き換えて、 計算値を正常に出した後、再度数箇所を空白にしてもエラーが出ませんでした。 ちなみにこの動作は、2007で試してみました。