- ベストアンサー
エクセルのCOUNTIF関数で条件が2つある時
- シート2のセルD5に数式「=COUNTIF(INDIRECT($C$43),B5)」があり「2」と表示されています。$C$43は数式「="1!$C$5:$C$"&E42」でE42セルには32の数字が入っています。つまりシート1のセルC5からC32までとシート2のB5が等しかったらシート2のセルD5に「件数を表示」です。1件の条件の時のカウントはできました。
- シート1のセルD5からセルD32とシート2のセルE5と等しいときにの条件を加えて「件数の表示」をしたいのですが、二つの条件があるときの書き方が分かりません。
- シート1のセルC5からセルC32までに入っている文字(1イ、2ロ、5,1ロ・・・)とシート2のB5の文字(1イ)が同じで、かつ、シート1のセルD5からD32までに入っている数字(23、19,21,40・・・)とシート2のセルE5の数字「23」と同じ時の件数を数えたい。と言うことですが、うまく説明できなくてすみません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
=SUMPRODUCT((INDIRECT($C$43)=B5)*(INDIRECT($D$43)=E5)) 又は =SUMPRODUCT((INDIRECT("1!C5:C"&E42)=B5)*(INDIRECT("1!D5:D"&E42)=E5)) になります。 尚、INDIRECT関数の中の" "で囲まれた部分は「$」を付けなくとも絶対参照になってしまいますから、「$」を付ける意味がありません。 ですから、C43の数式は ="1!C5:C"&E42 D43の数式は ="1!D5:D"&E42 とした方が良いと思います。
その他の回答 (4)
- MackyNo1
- ベストアンサー率53% (1521/2850)
>$C$43は数式「="1!$C$5:$C$"&E42」でE42セルには32の数字が入っています。つまりシート1のセルC5からC32までとシート2のB5が等しかったらシート2のセルD5に「件数を表示」です。 わざわざC43セルに参照先のセル範囲を取得する数式にしていますが、このシート名部分は関数で自動取得したのでしょうか。 もし手入力しているなら、以下のように直接INDIRECT関数に組み込んだ方がよいと思うのですが・・・ (文字列部分は相対参照でもOKですが、E42セルが固定ならこの部分を絶対参照にする)。 =COUNTIF(INDIRECT("1!C5:C"&$E$42),B5) >問題はこの次に、シート1のセルD5からセルD32とシート2のセルE5と等しいときにの条件を加えて「件数の表示」をしたいのですが、二つの条件があるときの書き方が分かりません。 ご使用のバージョンが記載されていませんが、Excel2007以降のバージョンならCOUNTIFS関数が利用できます。 =COUNTIF(INDIRECT("1!C5:C"&$E$42),B5,INDIRECT("1!D5:D"&$E$42),E5) 2003以前のバージョンならSUMPRODUCT関数を使うことになります。 =SUMPRODUCT(INDIRECT("1!C5:C"&$E$42)=B5)*(INDIRECT("1!D5:D"&$E$42)=E5)) #Officeソフトはバージョンによって利用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。
お礼
ありがとうございました。何とかできました。 まだバグがでるか分かりませんが、取り合えず、簡単なデータ入力で確認したところ、正常でした。 本当にありがとうございました。 必要な部分だけの妻儀食いですので、・・・質問の説明がうまく出来ず皆様にご迷惑をおかけしてしまいました。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
答えは出ているが、質問文を読んで、質問の内容がわかりにくい。 実例でも挙げて、ここをこう見て、ここの件数を出した意をはっきりさせること。 INDIRECT関連は、説明が「間接的」になるので、説明がやりにくいのはわかるが。 本件など(INDIRECTは使用経験があってわかっているのだから)INDIRECTを隠して(引用結果を用いて)説明してもよいのではないか。 INDIRECTの質問でなく、2条件の件数カウントなんだから。 ーー それにCOUNTIFSが使えるかどうかの問題がエクセルバージョン2007以後かどうかで必要なのに、質問に書いてない(バージョンを書くのは常識にしてほしい)。 2007以後なら Googleででも{COUNTIFS」で照会し http://www.becoolusers.com/excel/countifs.html などを勉強し、考えたらCOUNTIFの延長線で、そちらもでできるのでは。 INDIRECT関数は経験しているようだから。 ーーー それ以前のバージョンでは、「2条件(計数集計と件数カウント)はSUMPRODUCT」と公式的なものがあるので、良く覚えておくこと。
お礼
ありがとうございました。何とかできました。 まだバグがでるか分かりませんが、取り合えず、簡単なデータ入力で確認したところ、正常でした。 本当にありがとうございました。 必要な部分だけの妻儀食いですので、・・・質問の説明がうまく出来ず皆様にご迷惑をおかけしてしまいました。 ありがとうございました。
- nattocurry
- ベストアンサー率31% (587/1853)
条件は、 シート1のC5:C32に、シート2のB5の値が存在する なおかつ シート1のD5:D32に、シート2のE5の値が存在する でいいですか? その場合、何の件数を求めたいのですか? シート1のC5:C32に、シート2のB5の値が何件存在するか? それとも、 シート1のD5:D32に、シート2のE5の値が何件存在するか? それとも、 両方の合計? 求めたい値を明確にしてください。 あと、条件に合わなかった場合は、どうするのですか? 0を表示する? 何も表示しない? 何かメッセージを表示する?
お礼
ありがとうございました。何とかできました。 まだバグがでるか分かりませんが、取り合えず、簡単なデータ入力で確認したところ、正常でした。 本当にありがとうございました。 必要な部分だけの妻儀食いですので、・・・質問の説明がうまく出来ず皆様にご迷惑をおかけしてしまいました。 ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2のD5には次のような式を入力すればよいでしょう。 =COUNTIF(INDIRECT($C$43),B5)+COUNTIF(INDIRECT(SUBSTITUTE($C$43,"C","D")),E5)
お礼
ありがとうございました。何とかできました。 まだバグがでるか分かりませんが、取り合えず、簡単なデータ入力で確認したところ、正常でした。 本当にありがとうございました。 必要な部分だけの妻儀食いですので、・・・質問の説明がうまく出来ず皆様にご迷惑をおかけしてしまいました。 ありがとうございました。
お礼
ありがとうございました。成功しました。 つたない質問ですみません。他の仕事もしながら合間にエクセルを勉強して、統計の表作成ですので、順番に関数を勉強していけばいいのですが、一夜漬けの付け焼刃ですので、ご容赦ください。ありがとうございました。 あと1割ぐらいで表が完成します。 利益もないのに本当にありがとうございます。