Подсветка дублирующихся пар столбцов и подсчет строк Excel

-1

Учитывая данные ниже, пара столбцов с одинаковыми значениями как минимум для 4 последовательных строк должна быть выделена.

Вот изображение для лучшей визуализации :

2   2
3   4
3   4
3   4
3   4
2   3
1   2
2   2
3   3
3   3
3   3
3   3
2   3
2   3
2   3
2   3
2   2
3   4
3   4
3   4
3   4
3   4

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

2   2
3   4
3   4
3   4
3   4
2   3
1   2
2   2
3   3
3   3
3   3
3   3
2   3
2   3
2   3
2   3
2   2
3   4
3   4
3   4
3   4
3   4

Затем мне нужно знать количество экземпляров N-последовательной равной пары столбцов. Учитывая данные выше, N = 4 должно быть 3, а N = 5 должно быть 1, где N - количество строк, которым пара столбцов последовательно равна.

pleasehelpme
источник
1
На самом деле это не вопрос. Что вы уже пробовали, и где вы застряли? Пожалуйста, измените ваш вопрос, чтобы включить эту информацию.
Ƭᴇcʜιᴇ007
Ах, этот был очень похож на ваш предыдущий вопрос. Это немного по-другому, хотя. Я решил оставить это открытым, но, пожалуйста, включите информацию о том, что у вас уже есть.
slhck
Звучит немного сложно, если использовать только условное форматирование, и я подозреваю, что для его правильной работы нужен соответствующий макрос. Как говорит технарь, что вы пробовали до сих пор?
Mokubai

Ответы:

0

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

Поэтому я предлагаю вашему вниманию следующий макрос Excel, который

Before

в это

After

Я не несу ответственности за ваши данные с этим. Это будут нужна точная настройка в соответствии с вашими обстоятельствами (начальные номера строк и столбцов и т. д.), и если это создает черную дыру и ваш компьютер исчезает в порыве что-то тогда все, что я бы сказал, это «Ух ты, ты снял это на камеру?» Потому что это было бы здорово.

Тем не менее, это сработало для меня, и если вы настроите его правильно, это может сработать и для вас. Или вы можете изменить его, чтобы лучше соответствовать вашим потребностям.

Sub RepeatedRows()
'Written by Mokubai, 14/10/12
FirstColumn = "A"
LastColumn = "B"
StartRow = 2

' First we establish how far we are going down the table
NumRows = ActiveSheet.UsedRange.Rows.Count
NumCols = ActiveSheet.UsedRange.Columns.Count

'Then we start working out
RowString = ""
oldRowString = ""
numRepeated = 0

For i = StartRow To NumRows
    FirstCell = FirstColumn & i
    'FirstCell = "A1"
    LastCell = LastColumn & i
    'Create a temporary string that is the row contents
    For Each Cell In Range(FirstCell, LastCell)
        RowString = RowString & Cell.Value
    Next Cell
    'compare it to the previous row:
    If RowString = oldRowString Then
        numInGroup = numInGroup + 1
    Else
        numInGroup = 0
        Range(FirstCell).EntireRow.Interior.ColorIndex = 0
    End If

    'now we fill in the current and all previous rows to the same colour
    'I have done absolutely nothing facy with the colouring, it is simply using the value
    For col = 0 To numInGroup
        CellNo = FirstColumn & (i - col)
        Range(CellNo).EntireRow.Interior.ColorIndex = (numInGroup)

        'this next bit is so that only the last member of the group gets a value in it
        'in order to help define where the groups are
        EmptyColumn = "C" & i - col
        Range(EmptyColumn).Select
        If col = 0 Then
            ActiveCell.Value = numInGroup + 1
        Else
            ActiveCell.Value = ""
        End If
    Next col

    'in either case we store the current row string and clear the temporary row string and repeat
    oldRowString = RowString
    RowString = ""
Next

End Sub
Mokubai
источник