• ベストアンサー

エクセルで複数の条件に合うセルをカウントするには

こんにちは。 エクセルについて質問です。 ある集計をやっているのですが、カウントがうまくいきません。 7/10(白) 7/20(黄) 7/10(黄)  *()はセルの色 簡単に書くと上の表のようなものを集計するのですが、「セルの色=黄色かつ日付=7/10」というセルの数をカウントしたいのです。 指定した色のついたセルをカウントする関数は、下のURLの質問を見て作りました。 どのような関数を組み合わせればできるでしょうか…。 わかりにくい質問かもしれませんがよろしくお願いします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=59571

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

matuko
質問者

お礼

すみません! 締め切ったつもりだったのですが未だに締め切っていなかったとは…。 大変遅くなりました。 参考になりました。 どうもありがとうございました。

その他の回答 (1)

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

ちょっと姑息な手段ですが、その色がついたセルを抽出する方法で、黄色のセルは例えば1としましょう。 これをC列にでもいれます。 これに日付の7/10を足す(多分7/11になると思いますが)、もしくは7/10だったら710というような数字をD列にいれます。 E列にC列&D列という関数をいれると1710という数字が出てくると思います。 これをカウント、というのではダメでしょうか?

matuko
質問者

お礼

お礼が大変遅くなって申し訳ありません。 参考になりました。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう