- 締切済み
エクセル countifs関数について
エクセル countifs関数について 上記を使い、相談受けた内容や人の情報を日付ごとにまとめているデータを集計するやり方です。 その中にあるデータ 男 の数を月ごとにまとめたいのですが、 データは、同じ日なら、同じ列に追記していく形になっているので、 countif(c2:d34,〝男〝)として、 複数範囲 を選択し、男のデータを集計しておりました。 ただ、月ごとに自動で選択されるように h列に month関数で月の値を求めてから、 i列にi2から月の数字として、4~3 の値 入力。 式をcountifs(c:g,〝男〝,h :h,i2) としたところ、エラーとなり、データを求めることができませんでした。 範囲を、複数範囲と列 で設定しているのが、よくないと思うのですが、うまくやる方法ないですかね。 列 と列で揃えるしかないですかねぇ。 もし、よい方法があれば、ご教示ください。 ※データを言葉だけで表現しているので、大変わかりにくくて申し訳ありません。 countifsの考え方を知りたいというのが目的なので、実際の式、データよりは、かなり簡潔にして記載しております。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- mt2015
- ベストアンサー率49% (258/524)
- msMike
- ベストアンサー率20% (368/1812)
確認させてください。 下記、矛盾してません? 質問文》 データは、同じ日なら、同じ列に追記していく形 [No.1補足]》 同じ行に同日のデータを左→右に追加していく形 あと、質問文に登場した記述で、下記は間違いナシ?「男」「女」が入力される列は何処何処? countif(c2:d34,〝男〝) countifs(c:g,〝男〝,h :h,i2)
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。
- bunjii
- ベストアンサー率43% (3589/8249)
>i列にi2から月の数字として、4~3 の値 入力。 >式をcountifs(c:g,〝男〝,h :h,i2) >としたところ、エラーとなり、データを求めることができませんでした。 >countifsの考え方を知りたいというのが目的なので、・・・・ それはCOUNTIFSの仕様で複数列から検索する場合は検索条件範囲のサイズを同じにする必要があります。 つまり、C:Gの範囲で"男"を検索し、次の条件でH:Hでは列数が一致しませんのでH:Lの範囲でM2の値を検索します。 AND(C2="男",H2=M2)、AND(D2="男",I2=M2)、AND(E2="男",J2=M2)、・・・・のように組み合わせでカウントします。
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。
- SI299792
- ベストアンサー率47% (788/1646)
同じ行に同日のデータを左→右に追加していく形です。 意味が分からないのですが。 同じ行に男が2つ在った時も1つと数えるということでしょうか。 COUNTIF を使っても、同じ行に男が2つ在れば2つと数えますが。 最初に紹介した、J列をワークエリアに使う方法なら、同じ行に男が2つ以上在っても1つと数えます。 ワークエリアを使わずにやりたいのであれば、 =SUMPRODUCT(((C2:C34="男")+(D2:D34="男")+(E2:E34="男")+(F2:F34="男")+(G2:G34="男")>0)*(H2:H34=I2)) です。
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。
- SI299792
- ベストアンサー率47% (788/1646)
何回もすみません、SUMPRODUCTは計算に時間がかかります。計算範囲が決まっているなら、 =SUMPRODUCT((C2:G34="男")*(H2:H34=I2)) にした方がいいです。
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。
- SI299792
- ベストアンサー率47% (788/1646)
すみません。さっきの式は間違いです。 COUNTIF で数えているということは、同じ行で、C列とD列など2か所に男が入ることはあり得ないということですね。その前提条件で、 =SUMPRODUCT((C:E="男")*(H:H=I2)) にして下さい。
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。
- SI299792
- ベストアンサー率47% (788/1646)
=SUMPRODUCT(OR((C:C="男"),(D:D="男"),(E:E="男"))*(H:H=I2)) COUNTIFSでやるなら、J列をワークエリアに使い、 J3 =ISERROR(MATCH("男",C3:E3)) にして、 =COUNTIFS(J:J,FALSE,H:H,I2) にする必要があります。
お礼
ありがとうございます。 後、質問 訂正 すいません 同じ行に同日のデータを左→右に追加していく形です。
お礼
お礼遅くなり申し訳ありません。 ありがとうございました。