• 締切済み

《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…

こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…

みんなの回答

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

>説明は割愛しますが色々な不可抗力な偶然が重なり、条件式をすっかり勘違いしていました。 該当部分の問題は解決しています  であれば、すぐ締め切ること。無駄に読んで考える人も出ることを考えるべし。 こんなケースの、追加質問は別質問ですべし。

bari_saku
質問者

お礼

追加の方が解決せず、悶々とするうちに締め切りが遅れてしまいました。 今、締め切りますね。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

#1のmshr1962です。 先に答えられてしまいました。 ただ最後の>0は省略できます。 =SUMPRODUCT((A1:A50=1)*((B1:B50<>"")+(C1:C50<>""))) または =SUMPRODUCT((A1:A50=1)*(ISNUMBER(B1:B50)+ISNUMBER(C1:C50))) 解説:OR条件は+で連結でいいのですが()で囲む必要があります。 先のままだと(A列が1でB列が数値)or(C列が数値)になります。

bari_saku
質問者

お礼

こんにちは。 No.3さんのお礼にも書きましたが、どうもうまくいきません。 エクセル(の関数)を使い始めてずいぶんになりますが、andとorが混在すると未だに悩みます。 この件は、また新たに質問したいと思います。 どうもありがとうございました。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

こんにちは~ > A列が1であり、B列とC列にどちらか(もしくは双方)に > 数字が入っている(空白でない)ものをカウントしたい =SUMPRODUCT((A1:A50=1)*((B1:B50<>"")+(C1:C50<>"")>0)) または =SUMPRODUCT((A1:A50=1)*(ISNUMBER(B1:B50)+ISNUMBER(C1:C50)>0)) としてみてください。

bari_saku
質問者

お礼

ご回答ありがとうございます。 夕べ頭をひねっていましたが、データに問題があるのか、どうもうまくいきません。 こちらの件は、また新たに質問しようと思います。 どうもありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

関数に誤りはありませんので、#1さんのご指摘の通り、スペースが混入されていると思います。 以下の操作で行ってみて下さい。 ・編集→ジャンプ→セル選択→空白セルをチェック→OKすると空白セルの色が反転しますので、対象範囲に反転されていないセル(スペース入力)内容をクリアして下さい。

bari_saku
質問者

お礼

すみません、詳細はNo.1さんの欄に書いた通りです。 また新たな問題が出てきてしまいましたので、もしご存じでしたらお教え頂けますでしょうか。 なお、「ジャンプ」の機能は初めて使いました。便利ですね!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

B,C列は本当にブランクですか?スペースとか入力されていない? 数値を検索なら下記の式を試してください。 =SUMPRODUCT((A1:A50=1)*ISNUMBER(B1:B50)*ISNUMBER(C1:C50))

bari_saku
質問者

補足

いつもお世話になっております。 すみません、説明は割愛しますが色々な不可抗力な偶然が重なり、条件式をすっかり勘違いしていました。 該当部分の問題は解決しています。 さらについでと言っては何ですが、今度は「A列が1であり、B列とC列にどちらか(もしくは双方)に数字が入っている(空白でない)ものをカウントしたい」のですが、またこちらで悩んでいます。 =SUMPRODUCT((A1:A50=1)*ISNUMBER(B1:B50)+ISNUMBER(C1:C50)) まずB列とC列をorで判断するよう、上記のように*を+に変えてみたのですが、違うようです。 もし解決方法をご存じでしたら、ご教示頂けますと助かります。

関連するQ&A