Как сделать условное форматирование для строки? - PullRequest
0 голосов
/ 27 января 2020

Как сделать условное форматирование для каждой строки? В настоящее время я пытаюсь сравнить большой перекрестный продукт данных, но могу сравнить только данные в каждой строке с другими данными в той же строке. Я пытаюсь выяснить, как применить условное форматирование (трехцветная шкала) для каждой строки для большого выделения (12 столбцов и пара сотен строк). Какой самый простой способ сделать это?

Просто для примера, у меня может быть таблица, которая выглядит следующим образом:

r1 | 5    | 6    | 7    | 8
r2 | 10   | 11   | 12   | 13
r3 | 2000 | 3100 | 5400 | 1200

Итак, как бы мне сделать условное форматирование так, чтобы 5, 10 и 1200 будет самым низким для соответствующих строк, а 8, 13, 5400 будет самым высоким для их соответствующих строк?

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Нужно ли вам иметь цветовые шкалы, или вам просто нужно выделить максимальное и минимальное значение для каждой строки?

Если это первое, то я думаю, что VBA, вероятно, ваш единственный вариант, поскольку PeterT всплыл некоторый код для. Если это последнее, то использование VBA является излишним, и вы можете просто использовать пользовательский интерфейс условного форматирования для достижения того, чего вы хотите.

Предполагая, что ваши данные выше находятся в ячейках A1: D3, затем выберите их все и создайте Используйте формулу, чтобы определить, какие ячейки форматировать. Правило A1=MIN($A1:$D1) и измените формат на зеленый / красный / что угодно, заполняйте и c Затем создайте аналогичное правило с формулой A1=MAX($A1:$D1) и отформатируйте соответствующим образом

0 голосов
/ 27 января 2020

Вот некоторый бонусный код VBA для условного форматирования каждой строки отдельно.

Option Explicit

Sub CFEachRow()
    Dim singleRow As Range
    For Each singleRow In Sheet1.UsedRange.Rows
        FormatThisRow singleRow
    Next singleRow
End Sub

Private Sub FormatThisRow(ByRef thisRow As Range)
    With thisRow.FormatConditions
        .Delete
        .AddColorScale ColorScaleType:=3
        With .Item(1)
            .SetFirstPriority
            .ColorScaleCriteria(1).Type = xlConditionValueLowestValue
            With .ColorScaleCriteria(1).FormatColor
                .Color = 7039480
                .TintAndShade = 0
            End With
            .ColorScaleCriteria(2).Type = xlConditionValuePercentile
            With .ColorScaleCriteria(2).FormatColor
                .Color = 8711167
                .TintAndShade = 0
            End With
            .ColorScaleCriteria(3).Type = xlConditionValueHighestValue
            With .ColorScaleCriteria(3).FormatColor
                .Color = 8109667
                .TintAndShade = 0
            End With
        End With
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...