プロが教えるわが家の防犯対策術!

任意の色の数を数えることは
=COUNTCOLOR(A2:A13,"35")  ※35は色番号(グリーン)
で数える事は出来るのですが
Aのグリーの数を数えるにはどうすればよろしいのでしょうか?

「色つきのセルに条件をつけて数えたい」の質問画像

A 回答 (5件)

こんばんは。



CountColor というのは、
http://excel-magic.com/post-42/
このものをおっしゃっているのでしょうか。
どうも違うようですね。
http://day-after-days.seesaa.net/article/3995060 …
これに近いようですね。

>Aのグリーの数を数えるにはどうすればよろしいのでしょうか?
(B列のグレー?)

'//標準モジュール
Function CountColorN(CellRange As Range, ColoredCell As Variant)
'CountColorN(セル範囲,色の付いたセル(または、色番号)
Dim cnt As Long
Dim rng As Range
Dim c As Range
Dim numRGB As Long
Dim indxColor As Integer
If TypeName(ColoredCell) = "Range" Then
  Set rng = ColoredCell
  numRGB = rng.Interior.Color
Else
  indxColor = ColoredCell
End If
For Each c In CellRange
 If numRGB <> 0 Then
  If c.Interior.Color = numRGB Then
   cnt = cnt + 1
  End If
 ElseIf indxColor <> 0 Then
  If c.Interior.ColorIndex = indxColor Then
   cnt = cnt + 1
  End If
 Else
   cnt = cnt + 1
 End If
Next
 CountColorN = cnt
End Function
'//

使い方は簡単です。

=CountColorN($B$2:$B$13,B3)
範囲, 色のついたセル

ColorIndex が分かるのでしたら、例えば
=CountColorN($B$2:$B$13,44)
でも数えることが可能です。

p.s.多くのコードに、Application.Volatile を入れているようですが、
邪魔になることが多いです。

今は、Ver4 マクロ関数は、ほとんど、VBAに置き換えることが可能です。
    • good
    • 0
この回答へのお礼

B列の間違いでした
ご回答ありがとうございました

お礼日時:2017/04/23 09:38

項目名を入れてオートフィルタで抽出しSUBTOTAL関数で個数を出すとかではダメでしょうか?

    • good
    • 0

ユーザー定義関数を使いたいのですか?


https://oshiete.goo.ne.jp/qa/1225959.html

こちら↑の関数を使うなら、複数の条件でのカウントはNo.1の回答者
さんと同じですが、作業列を用意しないとカウントできないと思います。
塗りつぶし色だけのセルは、セル内に値がないのでカウントする関数
での対象になりません。

どうしても塗りつぶし色を指定しユーザー定義関数を使うことを前提に
して、且つ複数条件にするのなら、作業列に以下式を入れます。
 =COUNTCOLOR(A2,"35")=1

必要な行数分オートフィルをし、各行にTRUEまたはFALSEを表示して
おきます。
この列とA列を対象に複数条件でのカウントをする関数を利用します。
例:COUNTIFS関数やSUMPRODUCT関数など
http://www.relief.jp/itnote/archives/003021.php
http://www.relief.jp/itnote/archives/001400.php
http://yuwithyou.net/2011/01/sumproduct.html
「色つきのセルに条件をつけて数えたい」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました

お礼日時:2017/04/23 09:39

No1のesupuressoです。


例えばB列の色を変更した場合、C列の色番号は自動的に変わりませんので
その場合は、C列を範囲選択するか、色を変更した場所のC列のセル位置をアクティブ状態にして
「Ctrl」+「Alt」+ファンクションキーの「F9」を押すと再計算されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました

お礼日時:2017/04/23 09:39

ユーザー定義関数を使わない方法ですが・・・


C列を作業列として、セルC2を選択した状態で、「数式」タブの「定義された名前の定義」グループ内の
「名前の定義」をクリックします。
次に「新しい名前の定義」ダイアログがでますので「名前」に「セルの色」など好きな文字を入力。
「参照範囲」には次の式を入れます =GET.CELL(63,Sheet1!B2) (63という数字はセルの色を数値化させる番号です)
次にセルC2に =セルの色 と入力して「Enter」キーを押し、下方向へ式をオートフィルコピー
添付した画像を参照して頂いて・・・
セルF2に =COUNTIFS($A$2:$A$13,"A",$C$2:$C$13,10) の式を入れます。
(10はC列で返されている数値のことです)
他にもA列の黄色個数を計算する場合は、最後の「10」を「6」に変更すると黄色の色の個数が出ます。

取り敢えず、一例として載せておきます。
「色つきのセルに条件をつけて数えたい」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!