- 締切済み
《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…
こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>説明は割愛しますが色々な不可抗力な偶然が重なり、条件式をすっかり勘違いしていました。 該当部分の問題は解決しています であれば、すぐ締め切ること。無駄に読んで考える人も出ることを考えるべし。 こんなケースの、追加質問は別質問ですべし。
- mshr1962
- ベストアンサー率39% (7417/18945)
#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列が数値)になります。
お礼
こんにちは。 No.3さんのお礼にも書きましたが、どうもうまくいきません。 エクセル(の関数)を使い始めてずいぶんになりますが、andとorが混在すると未だに悩みます。 この件は、また新たに質問したいと思います。 どうもありがとうございました。
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ > A列が1であり、B列とC列にどちらか(もしくは双方)に > 数字が入っている(空白でない)ものをカウントしたい =SUMPRODUCT((A1:A50=1)*((B1:B50<>"")+(C1:C50<>"")>0)) または =SUMPRODUCT((A1:A50=1)*(ISNUMBER(B1:B50)+ISNUMBER(C1:C50)>0)) としてみてください。
お礼
ご回答ありがとうございます。 夕べ頭をひねっていましたが、データに問題があるのか、どうもうまくいきません。 こちらの件は、また新たに質問しようと思います。 どうもありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
関数に誤りはありませんので、#1さんのご指摘の通り、スペースが混入されていると思います。 以下の操作で行ってみて下さい。 ・編集→ジャンプ→セル選択→空白セルをチェック→OKすると空白セルの色が反転しますので、対象範囲に反転されていないセル(スペース入力)内容をクリアして下さい。
お礼
すみません、詳細はNo.1さんの欄に書いた通りです。 また新たな問題が出てきてしまいましたので、もしご存じでしたらお教え頂けますでしょうか。 なお、「ジャンプ」の機能は初めて使いました。便利ですね!
- mshr1962
- ベストアンサー率39% (7417/18945)
B,C列は本当にブランクですか?スペースとか入力されていない? 数値を検索なら下記の式を試してください。 =SUMPRODUCT((A1:A50=1)*ISNUMBER(B1:B50)*ISNUMBER(C1:C50))
補足
いつもお世話になっております。 すみません、説明は割愛しますが色々な不可抗力な偶然が重なり、条件式をすっかり勘違いしていました。 該当部分の問題は解決しています。 さらについでと言っては何ですが、今度は「A列が1であり、B列とC列にどちらか(もしくは双方)に数字が入っている(空白でない)ものをカウントしたい」のですが、またこちらで悩んでいます。 =SUMPRODUCT((A1:A50=1)*ISNUMBER(B1:B50)+ISNUMBER(C1:C50)) まずB列とC列をorで判断するよう、上記のように*を+に変えてみたのですが、違うようです。 もし解決方法をご存じでしたら、ご教示頂けますと助かります。
お礼
追加の方が解決せず、悶々とするうちに締め切りが遅れてしまいました。 今、締め切りますね。