- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- esupuresso
- ベストアンサー率44% (257/579)
- kagakusuki
- ベストアンサー率51% (2610/5101)
ANo.3です。 >この式では男の数にはなりますが、eは参加コードが0ですのでキャンセルを意味し、参加者に入りません。答えが3ではなく4になりませんか? いいえ、0を何回足したとしても、0のままですから、合計数に影響する事は無く、参加者コードに入力されている数の内、C列が男となっている行のみの合計は3となります。 これが例えば、0や1ではなく、2や3といった数が入力されている場合には、カウントがが合わなくなります。 この様な短所はありますが、SUMIF関数は、Excel2007よりも前のバージョンでも使用可能というメリットがあります。(COUNTIFS関数はExcel2007以降でないと使えません) それから、Excel2007よりも前のバージョンでも使用可能な関数であるSUMPRODUCT関数を使用して、 =SUMPRODUCT(($A$2:$A$6=1)*($B$2:$B$6="男")) とすれば、参加者コードに1以上の数値が入力されている場合でも、正しくカウントする事が出来ますが、SUMPRODUCT関数は計算処理に要する負荷が大きくなり易いため、参加者人数が何千人もいる場合には、結果が表示されるまでに時間が掛かる様になります。(2000人前後までなら大したことは無いと思います) ですから、もし、Excel2007よりも前のバージョンで使用する事を全く考慮する必要が無い場合には、COUNTIFS関数を使うのが正解ですし、 Excel2007よりも前のバージョンで使用する事を考慮する必要がる場合で、且つ、参加者人数が2000人以下の場合には、上記のSUMPRODUCT関数を使う方が良いですし、 Excel2007よりも前のバージョンで使用する事を考慮する必要がる場合で、且つ、参加コードに入力される値の内、数値データとなるものは0と1以外にはない、というルールがきちんと守られている場合には、SUMIF関数を使う方法が良いと思います。
お礼
参加コードとして文字Aではなく、数字の1を使ったのは足し算できるのが目的でした。それで、sumが使えるのをを忘れていました。 参加コードが文字Aでは同じ結果にはならないはずですね。 #2より簡単な式になること分かりました。アドバイスありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、参加と記されているセルがA1セルで、男女と記されているセルがC1セルであるものとします。 御質問の様に、参加者が数字の1で、その他の場合は0か空欄のみという条件でしたら、次の関数で、参加者の人数を求める事が出来ます。 男の参加者人数を求める関数 =SUMIF($C:$C,"男",$A:$A) 女の参加者人数を求める関数 =SUMIF($C:$C,"女",$A:$A)
お礼
コメントありがとうございます。 この式では男の数にはなりますが、eは参加コードが0ですのでキャンセルを意味し、 参加者に入りません。答えが3ではなく4になりませんか?
- hallo-2007
- ベストアンサー率41% (888/2115)
お礼
コメントありがとうございます。 言われる通り、No.2が簡単かつ直観的という意味で使わせてもらいます。