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

A   B  C  D
1    山田 岡田 坂本
2 国語 80 90 70
3 数学 80 80 80
4 理科 50 60 70
5 社会 30 50 10
6 英語 40 60 50

教科ごとに最高点を取った者のセルを色付けし、
個人ごとに色付けしたセルの個数を数えたいと思っています。

教科ごとに色付けするまでは条件付き書式で設定し、VBAで色付けのセルをカウントさせようと
思いましたが、条件付き書式で色付けしたセルはカウントしないことを知りました。

結果的には、最高点を取った教科の数を数えたいので、
COUNTIFを用いてみようと試み
=COUNTIF(B2:B6,”MAX(B2:D2)")
と書いてみましたが、うまくいきません。

ご指南いただけないでしょうか。
よろしくお願いいたします。

A 回答 (3件)

こんばんは!



お使いのバージョンがExcel2010以降であれば、条件付き書式の色もVBAで判定できます。

数式を拝見するとデータは2行目~6行目のようなので、
B列以降、8行目に色付きセルの数を表示するようにしてみました。

Sub Sample1()
 Dim i As Long, j As Long, cnt As Long
  For j = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
   For i = 2 To 6 
    If Cells(i, j).DisplayFormat.Interior.ColorIndex <> xlNone Then
     cnt = cnt + 1
    End If
   Next i
    Cells(8, j) = cnt
    cnt = 0
  Next j
End Sub

※ セルが何色に塗りつぶされていても(複数色であっても)カウントされます。m(_ _)m
    • good
    • 0
この回答へのお礼

VBAを勉強して内容を理解しなきゃいけないんですが、
教えていただいたものをコピペすると簡単にカウントできました!
ありがとうございました。

お礼日時:2018/12/11 15:45

作業用のセルを用意すれば簡単です。



条件付きセルと同じものを別のセルに記載します。
 =B2=MAX($B2:$D2)
個人別に結果がTRUEになったセルをカウントします。
 =COUNTIF(B8:B12,TRUE)
「行ごとの最大値に色付けし、列ごとに色付け」の回答画像2
    • good
    • 0

》 …と書いてみましたが、うまくいきません。


うまくいった場合の戻り値(正解値)は何?
    • good
    • 0

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