- 締切済み
IFの偽の場合をさらにIFでしぼるには?
Excel XPを使っています。 0 A , B , C 1 ○ 男 2 △ 女 3 × 男 4 ○ 女 参加不参加に関する表を作っています。 参加が○、不参加が×、未定が△です。 B欄は性別です。 参加できる男子の数、参加できる女子の数を出したいのですが、C欄に男で参加なら1を出力、女で参加なら2を出力、それ以外はすべて0として、C欄をCountifを使って1の数を数えさし、参加する男の数、Countifで2を数え、参加する女の数を出そうと思いました。 そこで下のような式を作りました IF(AND(A2="○",B2="男"),1,IF(AND(A2="○",B2="女"),2),0 これだと引数が多すぎるといわれました。 IFのなかにさらにIFを入れることはできないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- nishi6
- ベストアンサー率67% (869/1280)
>それにヒットする値があるにもかかわらず0が答えになりました。 >Aや2の前についてる$が関係してそうなるのでしょうか? │ A│ B│ ─┼──┼──┼─ 1│出欠│性別│ 2│ ○│ 男│ 3│ △│ 女│ 4│ ×│ 男│ 5│ ○│ 女│ =SUM(IF($A$2:$A$5="○",IF($B$2:$B$5="男",1,0),0)) 上式で、$A$2:$A$5は上表の『○、△、×』のあるA2~A5 $B$2:$B$5は上表の『男、女』のあるB2~B5です。ご自分のセル範囲に変更して下さい。 $ については、なくてもかまいません。コピーする時にセル範囲が変わるので付けただけです。 ※セル範囲を対応させれば計算できると思いますが、 『○』や『男』の前後にスペースがある場合は算式を少し変えます。 =SUM(IF(TRIM($A$2:$A$5)="○",IF(TRIM($B$2:$B$5)="男",1,0),0)) でスペースを除いてみます。 算式を算式の入力窓に入力したら、CtrlキーとShiftキーを押しながらEnterとします。配列数式として登録できれば、算式は{ }で囲まれて見えます。当然、集計値もでるはずですが・・・ 登録時『#VALUE!』のエラー表示になったら、ファンクションキーF2を押して編集モードにし、再度Ctrl+Shift+Enterとしてみて下さい。(当方Excel2000です。)
- Spur
- ベストアンサー率25% (453/1783)
式に矛盾がありますのでエラーになります。 IF関数は、 IF(論理式, 真の場合の値, 偽の場合の値) でなければなりません。 「偽の場合の値」のところに値ではなく、式を入れるのは間違いです。 最後に「)」も足りません。 C列に以下の式 =IF(AND(B2="○",C2="男"),1,0) D列に以下の式 =IF(AND(B2="○",C2="女"),1,0) を入れてはどうですか? そうすれば、C列の合計が男の出席者総数で、D列の合計が女の出席者総数です。
- 4500rpm
- ベストアンサー率51% (3211/6286)
最後のところがちがってます。 =IF(AND(A2="○",B2="男"),1,IF(AND(A2="○",B2="女"),2,0)) 惜しかったですね。
お礼
ありがとうございました。 最後のところでIFがごちゃごちゃになりエラーが起きていました。
- nishi6
- ベストアンサー率67% (869/1280)
=IF(AND(A2="○",B2="男"),1,IF(AND(A2="○",B2="女"),2,0)) とすれば、お望みの値がでるでしょう。 直接集計する方法として、データ数が2行目~5行目の4行なら、 =SUMPRODUCT(($A$2:$A$5="○")*($B$2:$B$5="男")) =SUMPRODUCT(($A$2:$A$5="○")*($B$2:$B$5="女")) で、男性参加者、女性参加者を集計できます。 当然、○を×、△に変えれば不参加、未定の集計ができます。 他に、配列数式を使って、 =SUM(IF($A$2:$A$5="○",IF($B$2:$B$5="男",1,0),0)) =SUM(IF($A$2:$A$5="○",IF($B$2:$B$5="女",1,0),0)) でも集計できます。式を登録する時、Ctrl+Shift+Enter とします。(CtrlキーとShiftキーを押しながらEnterとします) ご参考に。
補足
解答ありがとうございます。 =SUM(IF($A$2:$A$5="○",IF($B$2:$B$5="男",1,0),0)) =SUM(IF($A$2:$A$5="○",IF($B$2:$B$5="女",1,0),0)) のほうを使わせてもらったのですが、それにヒットする値があるにもかかわらず0が答えになりました。 Aや2の前についてる$が関係してそうなるのでしょうか?
- taknt
- ベストアンサー率19% (1556/7783)
if((B2="男" and A2="○"),1,if((A2="○" and B2="女"),2,0)) 自宅では エクセルを使ってないので 確認が取れませんが上記のようでは いかがでしょうか? ちなみに 引数が多いといわれる式の最後に ,0) と カッコは つけくわえてありますか?
お礼
Ctrl Shift Enterを押したら無事にできました。 EXCEL初心者なのでもっと勉強がいるということを教えられました。 こんなすばらしいことを教えて頂き本当にありがとうございます。 ありがとうございました。