- ベストアンサー
エクセルで複数の条件に合うセルをカウントするには
こんにちは。 エクセルについて質問です。 ある集計をやっているのですが、カウントがうまくいきません。 7/10(白) 7/20(黄) 7/10(黄) *()はセルの色 簡単に書くと上の表のようなものを集計するのですが、「セルの色=黄色かつ日付=7/10」というセルの数をカウントしたいのです。 指定した色のついたセルをカウントする関数は、下のURLの質問を見て作りました。 どのような関数を組み合わせればできるでしょうか…。 わかりにくい質問かもしれませんがよろしくお願いします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=59571
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ユーザー定義関数を作ってみました。 集計したい範囲、カウントしたい色のインデックス、日付を引数にします。 例えば、範囲B2:B21で黄色(インデックス=6),日付="7/10" をカウントするには、 =ColorAndDateCount(B2:B21,6,"7/10") とします。 赤色(インデックス=3)など、色のインデックスは調べて下さい。 『0』を指定すると色を付けていないセルを対象にします。 日付は『年』部分がどのようになっているか分からないので、判定に入れていません。 日付のセルの属性がよく分からないので文字列にして比較しています。 セルの色はセルの書式設定のパターンで塗ったケースを想定しています。条件付書式での色は感知しません。 ご参考に。 Function ColorAndDateCount(Area As Range, col As Long, dt As String) Dim rg As Range 'セル Dim cot As Long 'カウンタ Dim chkColor As Long 'カウントする色 chkColor = col: If col = 0 Then chkColor = xlColorIndexNone For Each rg In Area If rg.Interior.ColorIndex = chkColor Then If Format(rg.Text, "m/d") = dt Then cot = cot + 1 End If End If Next ColorAndDateCount = cot End Function
その他の回答 (1)
- KODAMAR
- ベストアンサー率26% (267/1006)
ちょっと姑息な手段ですが、その色がついたセルを抽出する方法で、黄色のセルは例えば1としましょう。 これをC列にでもいれます。 これに日付の7/10を足す(多分7/11になると思いますが)、もしくは7/10だったら710というような数字をD列にいれます。 E列にC列&D列という関数をいれると1710という数字が出てくると思います。 これをカウント、というのではダメでしょうか?
お礼
お礼が大変遅くなって申し訳ありません。 参考になりました。 どうもありがとうございました。
お礼
すみません! 締め切ったつもりだったのですが未だに締め切っていなかったとは…。 大変遅くなりました。 参考になりました。 どうもありがとうございました。