- 締切済み
エクセル 複数条件でのカウント関数について
添付ファイルのようなデータがあり、勤務区分が”日勤”かつ”1日”のデータ個数をカウントする関数、若しくは計算式を模索中です。 Web等を検索し、Counta関数、Countif関数、Dcountif関数など調べて使用してみましたが、 記述の仕方が悪いのかエラーとなりカウントできませんでした。 仕様ソフトはMicrosoft Excel 2003Versionです。 余談にはなりますが、これが出来れば、勤務区分=”日勤” and ”半日”という条件や、 勤務区分=”夜勤” and ”1日”、勤務区分=”夜勤” and ”半日”という種別に分けてカウントしたいと思っております。 よろしくお願いいたします。
- 蕾愛 遙(@light_0106)
- お礼率0% (0/4)
- オフィス系ソフト
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17068)
これなんかは、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)
余談です。 例えば、日勤・全日→日全、日勤・半日→日半、夜勤・一日→夜全、夜勤・半日→夜半で表現すると1列に収まり、数式も=COUNTIF(列範囲,"日全")とかで計数できますが如何でしょうか。
- mshr1962
- ベストアンサー率39% (7418/18948)
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)
例えば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の記述で、時間の範囲表示はどのように記述したら良いのかわからず、 行き詰ってしまいました。。 分かりづらい質問になってしまい大変恐縮ですが、どうぞ良いアドバイスを お願いいたします。
- 締切済み
- Visual Basic
- 関数で可視セルのデータ個数カウント
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条件でカウントするやり方がわかりません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト