• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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% (7418/18948)
回答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

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • エクセル関数で条件の組合わせのカウントをする方法

    先日、条件付のセルのカウントの質問をしました。方法がいくつかあることはわかったのですが、具体的な表記にたどり着けませんでした…。 「●データ」のようなデータから 「●結果」のような結果を得たいと思っています。 このときのエクセル関数の具体的な表記を教えてください。 ●データ 発生日 種別 完了日 2006/5/1 A 2006/5/1 2006/5/1 A 2006/5/1 B 2006/5/3 2006/5/3 A 2006/5/4 2006/5/5 A ●結果 日付 A発生 A完了 A残 2006/5/1 2 1 1 2006/5/2 0 0 1 2006/5/3 1 0 2 2006/5/4 0 1 1 2006/5/5 1 0 2 今はとりあえず下記のソースのようにVBAで対処したのですが、後学のために関数だけで行う方法も学びたいと思いました。よろしくお願いします。 =countA発生("A",[日付セルアドレス]) =countA対策("A",[日付セルアドレス]) =countA残("A",[日付セルアドレス]) Function countA発生(指定種別 As String, 基準日 As Date) i = 2 Count = 0 While Cells(i, 1).Value <> "" 基準日の発生だ = (Cells(i, 1).Value = 基準日) 種別が指定のものだ = (Cells(i, 2).Value = 指定種別) If 基準日の発生だ And 種別が指定のものだ Then Count = Count + 1 End If i = i + 1 Wend countA発生 = Count End Function ※countA対策とcountA残のソースは800字制限に引っかかったため省略

  • エクセルにて指定データをカウントする。

    以下のようなデータがあります。 ○ × = × × = ○ ○ ここにはデータが全部で8個あり、=が2個ありますから これを 2/8と表示させたいと思ってます。 指定した範囲のセルの個数はCOUNTA、指定したデータと一致するものは COUNTIFで数えられると思いますが、これらを A / B という表示形式で表示する方法が分かりません。また、COUNTIFの中で COUNTIF(A1:A8, "×")はうまく動きますが、COUNTIF(A1:A8, "=")はちゃんとカウントしてくれません。よろしくお願いします。

  • エクセルでの複数条件

    たとえば、100以上&150未満の条件で該当する個数をカウントしたい場合、countif関数とif関数をどういう風に組み合わせればいいのでしょうか。よろしくお願い致します。

  • 関数“COUNTIF”で日付のカウント

    日付のデータの個数換を算したいので、“COUNTIF”関数を用いようと思っていますが "*"を検索条件にしてもカウントされません。 正しいワイルドカードを教えて下さい!

  • エクセル関数COUNTIFでのAND条件

    0より大きく、5以下であるセルの個数を取得するCOUNTIF関数で、AND条件で、 =COUNTIF(A1:A10,"AND(>0,5<=") としても答えは0になってしまいます。 下記のように0より大きい個数を求め、そこから5を越える個数を引けば答えは出るのですが、ANDではもとめられないのでしょうか? =COUNTIF(A1:A10,">0")-COUNTIF(A1:A10,">5")

  • エクセルVBA-複数の条件に一致する値をそれぞれ表示させたいのですが・

    エクセルVBA-複数の条件に一致する値をそれぞれ表示させたいのですが・・・ エクセルVBAの超初心者です。 当初はVLOOKUP関数で作ってみようと思いましたが、データ量が多すぎるのもあり マクロを使ってボタンで一発表示が出来ないものかと思いました。 色々調べてみましたが、時間範囲の表示がわからず行き詰ってしまったので、 どなたか教えてください。宜しくお願いします。 社員区分、勤務種別、勤務開始時間を判別して、条件に一致した値を表示できる 表を作成しようとしています。 例えば、「社員区分が★で勤務種別が夜勤1、勤務開始時間が21:00~23:00の間 で入力した場合は区分1」のように表示したいのです。 シートでいうと次のような感じです。  A1  B1    C1     D1  ★  夜勤1  22:05 ⇒ 区分1  ☆  夜勤2  22:10 ⇒ 区分2  ★  夜勤3  20:00 ⇒ 区分3 セルA1~C1までは手入力をし、その後ボタンを押すとD1のような 結果表示をするように作成したいのです。 社員区分は、★と☆の2通り、勤務種別は3通りです。 ここで面倒なのが、勤務開始時間の範囲です。 夜勤1の勤務開始時間は21:00~23:30の間 夜勤2の勤務開始時間は23:00~24:30の間 夜勤3の勤務開始時間は20:00~21:00の間 と、勤務開始時間が1分刻みに設定されていて、なおかつ夜勤1と夜勤2の 開始時間が23:00~23:30の間、かぶってしまっているのです。 VBAの記述で、時間の範囲表示はどのように記述したら良いのかわからず、 行き詰ってしまいました。。 分かりづらい質問になってしまい大変恐縮ですが、どうぞ良いアドバイスを お願いいたします。

  • 関数で可視セルのデータ個数カウント

    Excel2002を使用しています。 オートフィルタで抽出したデータの個数を関数で カウントしたいのですが、可視セルのみをカウント 出来る関数はあるのでしょうか? 例えば   A 1 件数 2  2 3  1 4  3 5  1 6 関数 A6セルに何らかの関数を入れておき、 A列のオートフィルタを使って、1を抽出した時は A6に”2” 3を抽出した時はA6に”1”を表示させたいの です。 このように、可視セルのデータ個数のみを カウントする関数はありますでしょうか? フィルタを使わずにCOUNTIF関数でカウントする 方法、また、可視セルをコピー貼り付け後 カウントする方法は避け、あくまでフィルタで 抽出したデータの個数を瞬時にカウントしたいの です。 ご教授宜しくお願いします。

  • 重複データの個数関数

    エクセル2000を使用していますが、データの個数は、 COUNTA関数でできますが、重複しているデータもカウントしています。 これを重複しているデータは、いくつあっても1回しかカウントしないで求める関数は、あるのでしょうか。

  • 【Excel】複数条件でのカウント

    お世話になります。  列 A    B 行  項目X    項目Y 1 あ     aaa 2 あ     bbb 3 い     aaa 4 い     bbb 項目X = "あ" & 項目Y = "aaa" のカウントをしたいのですがどのような関数になりますか? それぞれ単独の場合は、 (1)countif(A1:A4,"あ") → 2 (2)countif(B1:B4,"aaa") → 2 になるのはわかるのですが、ひとつのセルにこの二つの条件をand条件でカウントするやり方がわかりません。 よろしくお願いします。

専門家に質問してみよう