[[20190104120614]] 『色付け』(猫) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『色付け』(猫)

お世話になります。
下記の様にA列に総合順位、B列に名前。C列に英語の点数が有り
C列英語の点数で降順ソートをして総合順位より上か下かを見たいので
C列降順ソートを行い上に行けば点数のセル背景を青、下に行けば赤に
したいのですがどの様にしたら良いのか分からずに悩んでいます。
何方かご教授お願いいたします。

 A列      B列     C列       
総合順位   氏名    英語        

 1      A     100
 2         B        98    赤        
 3         C        99    青      
 4         D        97     
 5         E        95    赤                
 6         F        94    赤 
 7         G        93    赤 
 8         H        92    赤            
 9         I        96    青   
 10        J        90    赤     
 11        K        91    青    

C列降順ソートセルの色付け後、A列を昇順ソートして元に戻します。

表は約6000行で行データは最小5最大29で30行ごと区切っています。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


英語の点数で並び替えたあと、英語の順位をどこかの列に作成して、
あとは条件付き書式を使ってはどうでしょう。
 
>表は約6000行で行データは最小5最大29で30行ごと区切っています。
どこかでうかがった不吉な話ですが、もう少し説明できませんか?
途中に空白行が入っていたら、A列の昇順ソートも簡単にはいかない気がしますが
いかがですか。そこは論点ではないのですね?
(γ) 2019/01/04(金) 13:35

Sub main()
    Dim c As Range
    Range("C:C").Interior.Pattern = xlNone
    For Each c In Range("C:C").SpecialCells(2)
        If WorksheetFunction.Rank(c.Value, Range("C:C")) > c.Offset(, -2).Value Then
            c.Interior.Color = vbRed
        ElseIf WorksheetFunction.Rank(c.Value, Range("C:C")) < c.Offset(, -2).Value Then
            c.Interior.Color = vbBlue
        End If
    Next c
End Sub
(mm) 2019/01/04(金) 13:48

γ様、mm様
コメント及び回答ありがとうございます。

繰り返し処理は同僚に聞くので良いのですが正直なところ色の付け方が分かりませんでした。
?o様のコードを見るとWorksheetFunction.Rankで順位が判断できるのを知りとても勉強になりました。

mm様
コードはとてもシンプルで分かりやすくて助かりました。

ありがとうございました。

(猫) 2019/01/04(金) 14:54


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.