Как сделать условное форматирование для одной колонки?

Есть прайс, который я забираю через Power Query из Mysql.

введите сюда описание изображения

В нем одна колонка - это наши цены, а все остальное - цены конкурентов. Я хочу сделать форматирование зеленым цветом на цене конкурента - если оно меньше чем у меня, и наоборот - красным. Сделал как на скрине - но никак не работает. Нет выделения цветом.

введите сюда описание изображения


Ответы (2 шт):

Автор решения: vikttur

Выделить столбцы с ценами конкуретов (C:F). Записать правила форматирования. Так создадутся общие форматы для этих столбцов. Так удобнее - не нужно отслеживать диапазон с данными; при удалении/добавлении строк УФ не дробится на несколько одинаковых форматов.

Формула УФ для цен, которые больше исходных:

=ЕСЛИ(СТРОКА($B1)>1;C1>$B1)

Чтобы не закрашивались пустые ячейки, в формулу для меньших цен можно добавить проверку на наличие цены:

=ЕСЛИ(СТРОКА($B1)>1;ЕСЛИ(C1;C1<$B1))
→ Ссылка
Автор решения: Tilek Samiev

Пример макроса, который выполняет условие:

Sub Макрос1()

Dim i As Integer

For i = 1 To 100

If Cells(i, 2) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 2).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
End If
If Cells(i, 2) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 2).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With
End If

If Cells(i, 3) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 3).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
End If
If Cells(i, 3) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 3).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With
End If

If Cells(i, 4) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 4).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
End If
If Cells(i, 4) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 4).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With
End If

If Cells(i, 5) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 5).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
End If
If Cells(i, 5) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 5).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With
End If

If Cells(i, 6) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 6).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
End If
If Cells(i, 6) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 6).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With
End If

Next i

End Sub

если строк больше 100, то измените значение в цикле For

→ Ссылка