2017-02-22 34 views
0

Добрый день,Excel (условное форматирование)

У меня есть набор данных и выглядит следующим образом (пример). Мне нужно выделить самую высокую цифру между A1 и A2, затем самую высокую между A3 и A4, самую высокую между A5 и A6 и так далее. То же самое для столбцов B и C и т. Д. Самый высокий, который я хочу выделить зеленым, самым низким в красном? Есть идеи. Это большой набор данных и вручную займет слишком много времени.

Example

+0

Вы пробовали что-нибудь с условным форматированием? Вам, вероятно, понадобится формула или две, чтобы проверить, превышает ли A1 больше A2 и A2 меньше A1 –

+0

Я согласен, что это сработает, однако, как я могу добавить формулу к каждому из двух блоков? Потому что, если я перетащил формулу вниз, она будет проверять между A2 и A3, тогда как я хочу, чтобы она проверила A1 и A2, затем A3 и A4, поэтому в основном она должна пропускать строку. Есть ли макрос, который может мне помочь? – Celeste

ответ

0

Ответ на вопрос ниже связанный отчасти в начале, чтобы ответить на ваш вопрос. Вам нужно будет сделать это с помощью VBA, делать что-то вроде этого:

Do While i <= cols 
    Do While j <= rows 
     //set conditional formatting for range ij:i(j+1) 
     j = j + 2 
    Loop 
Loop 

Я буду видеть, если я могу создать определенный сценарий для вас.

Format Top 3 and Bottom 3 Values for each row

EDIT: Я проверил это только немного на небольшой набор данных, я создал. Кажется, он работает по запросу. Все, что вам нужно настроить, это «cols» и «rows», чтобы точно представлять ваш набор данных.

EDIT2: Код был слегка изменен, чтобы исправить небольшую проблему, которую я нашел.

Sub Conditions() 
Dim i As Integer, j As Integer, cols As Integer, rows As Integer 
cols = 2 
rows = 10 
i = 1 
j = 1 

Do While i <= cols 
    Do While j <= rows 
     With Range(Cells(j, i), Cells(j + 1, i)).FormatConditions.Add(xlTop10) 
       .SetFirstPriority 
       .TopBottom = xlTop10Top 
       .Rank = 1 
       .Percent = False 
       With .Interior 
        .PatternColorIndex = xlAutomatic 
        .Color = RGB(0, 255, 0) 
        .TintAndShade = 0 
       End With 
      End With 
     j = j + 2 
    Loop 
    i = i + 1 
    j = 1 
Loop 
i = 1 
j = 1 


Do While i <= cols 
    Do While j <= rows 
     With Range(Cells(j, i), Cells(j + 1, i)).FormatConditions.Add(xlTop10) 
       .SetFirstPriority 
       .TopBottom = xlTop10Bottom 
       .Rank = 1 
       .Percent = False 
       With .Interior 
        .PatternColorIndex = xlAutomatic 
        .Color = RGB(255, 0, 0) 
        .TintAndShade = 0 
       End With 
      End With 
     j = j + 2 
    Loop 
    i = i + 1 
    j = 1 
Loop 

End Sub 
+0

Спасибо, это было бы здорово. – Celeste

+0

Я отредактировал свой ответ с помощью скрипта VBA, который я собрал из других сообщений в stackoverflow. Надеюсь, что это работает для вас. –

+0

Обнаружена небольшая ошибка, которая создала много избыточных правил условного форматирования. –