• 締切済み

エクセル 複数条件でのカウント関数について

添付ファイルのようなデータがあり、勤務区分が”日勤”かつ”1日”のデータ個数をカウントする関数、若しくは計算式を模索中です。 Web等を検索し、Counta関数、Countif関数、Dcountif関数など調べて使用してみましたが、 記述の仕方が悪いのかエラーとなりカウントできませんでした。 仕様ソフトはMicrosoft Excel 2003Versionです。 余談にはなりますが、これが出来れば、勤務区分=”日勤” and ”半日”という条件や、 勤務区分=”夜勤” and ”1日”、勤務区分=”夜勤” and ”半日”という種別に分けてカウントしたいと思っております。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

これなんかは、2007ではCOUNTIFSが出来て、注目を集めて、有名な点になっている。2003までは、SUMPRODUCT関数が専属(定石)みたいなもの。 条件の数だけ()で並べ*でAND条件化して、最後に*1をかけて件数数字化する。 GoogleでSUMPRODUCT関数を照会すれば、沢山記事がある。 ただしSUMPRODUCT関数の本来の機能は、それぞれ(同一行の別列セル同志などを)掛け算して、それらの積を全部加える関数だからね。 真偽のTRUE、FALSEが数的な計算に出来るので、そういうこと(AND条件で数える)が行われる。 セルで下記の式を入れてやってごらん =TRUE*FALSE   0 =TRUE*TRUE   1 =FALSE*TRUE   0 =FALSE*FALSE   0 真偽のAND条件の表だ。 の意味をよく考えて、SUMPRODUCTを使う理由を考えて。 言っておくが、TRUEやFALSEは文字列の値のことではないよ。セルの真偽の値です。 *はAND条件を取ること似になる。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

余談です。 例えば、日勤・全日→日全、日勤・半日→日半、夜勤・一日→夜全、夜勤・半日→夜半で表現すると1列に収まり、数式も=COUNTIF(列範囲,"日全")とかで計数できますが如何でしょうか。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

EXCEL2007なら複数条件の新関数がありますけど... ■作業列を使っていいなら =AND(D2="日勤",E2="半日") または =(D2="日勤")*(E2="半日") としてこの列でTRUEをカウントする ■配列数式 =SUM(IF((D:D="日勤")*(E:E="半日"),1,0)) と入力して、Ctrl+Shift+Enterで配列数式化する。 ※配列数式化すると数式バー上の数式が{}で囲われます。 ■SUMPRODUCT関数の応用 =SUMPRODUCT((D2:D100="日勤")*(E2:E100="半日")) ※列全体、行全体の指定は出来ません。必ず範囲指定になります。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばA列に日付、B列に平日など、C列に日勤など、D列に1日などのデータがあるとしたら次のような式で求めることができます。 日勤かつ1日のデータ数 =SUMPRODUCT((C1:C200="日勤")*(D1:D200="1日")) 日勤かつ半日 =SUMPRODUCT((C1:C200="日勤")*(D1:D200="半日")) 夜勤かつ1日 =SUMPRODUCT((C1:C200="夜勤")*(D1:D200="1日")) 同様にほかのケースも考えればよいでしょう。

関連するQ&A