Excel: как выделить минимальное значение (ячейку) в каждых 3 строках? - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужно выделить все минимально значимые ячейки в каждых 3 рядах.Я пытался использовать условное форматирование.Это формула, которую я набрал:

Изображение

enter image description here

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

Но, похоже, это не работает.Есть ли лучший способ решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Если я правильно понимаю ваш вопрос, то этого можно достичь, используя OFFSET для создания диапазонов по 3 строки в каждом.

Пример:

enter image description here

Формула в G2 вниз:

=INT((ROW(A2)-ROW($A$2))/3)*3

Формула в I2 вниз:

=MIN(OFFSET($A$2,INT((ROW(A2)-ROW($A$2))/3)*3,0,3,COLUMNS($A:$E)))

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

Формула условного форматирования, примененная к диапазону =$A$2:$E$13, будет тогда:

=(A2=MIN(OFFSET($A$2,INT((ROW(A2)-ROW($A$2))/3)*3,0,3,COLUMNS($A:$E))))
0 голосов
/ 12 декабря 2018

Вы можете попробовать:

Option Explicit

Sub test()

    Dim i As Long, min As Long, LR As Long
    Dim rng As Range, cell As Range


    With ThisWorkbook.Worksheets("Sheet1")

        LR = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To LR Step 3

            Set rng = .Range("A" & i & ":A" & i + 2)
            min = Application.WorksheetFunction.min(rng)

            For Each cell In rng
                If cell.Value = min Then
                    cell.Interior.Color = vbGreen
                    Exit For
                End If
            Next cell

        Next i
    End With

End Sub
...