Виділіть повторювані рядки (не комірки)


1

Мені потрібно виділити повторювані рядки в моєму аркуші Excel 2013. Я можу виділити дублікати значень комірок у рядках, використовуючи метод "Виділити -> Копіювати", але я намагаюся зробити це виділити рядки в цілому, що є дублікатами. Якщо для цього рядка відрізняється лише одна комірка, то в моєму випадку вона не вважається повторюваною.

Приклад:

Name    Task     Phone Number
A       Do 1     12345
B       Do 1     12345
A       Do 2     12345
B       Do 1     12345

Для наведеної таблиці слід виділити лише рядки 2 та 4.


If only one cell is different for that row then it's not considered duplicate in my case.Тоді що вважається дупом? Це можна вирішити, використовуючи VBa
— Дейв

Рядок вважається дублікатом, якщо існує інший рядок, який абсолютно рівноцінний йому, має репліку комірок перших рядків. Перевірте доданий я приклад.
— користувач3340627

Відповіді:


0

Ви просите виділити рядки, але я гадаю, що це може бути проблематично (хоча ви не описуєте, чому ви цього хочете). Якщо припустити, що у вас є 10 рядків, і багато з них відповідають іншим рядкам, ваш робочий аркуш виглядатиме так

введіть тут опис зображення

Проблема полягає в тому, що ви не маєте поняття, який рядок відповідає якому рядку!

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

Тому я пропоную рішення із додатковим стовпцем інформації (знімок екрана нижче):

Sub WalkThePlank()

Dim startRow As Integer
startRow = 2                 'Update this to lead us to the treasure

Dim row As Integer
row = startRow

Do While (Range("A" & row).Value <> "")

    Dim innerRow As Integer
    innerRow = row + 1

    Dim name As String
    Dim task As String
    Dim phone As String

    name = Range("A" & row).Value
    task = Range("B" & row).Value
    phone = Range("C" & row).Value

    Do While (Range("A" & innerRow).Value <> "")


        If (Range("A" & innerRow).Value = name And Range("B" & innerRow).Value = task And Range("C" & innerRow).Value = phone) Then
            Range("D" & row).Value = Range("D" & row).Value & innerRow & ", "
            Range("D" & innerRow).Value = Range("D" & innerRow).Value & row & ", "
            'Rows(row).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING

            'Rows(innerRow).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING
        End If

    innerRow = innerRow + 1
    Loop

    row = row + 1
Loop

End Sub

Це те, що робить

введіть тут опис зображення

Зробіть це на копії файлу - немає функції скасування!

Зауважте, що в коді є два рядки, які показують, який рядок відмітити (видаліть перший 'у цих рядках, і вони виділяться)

Як додати VBA в MS Office?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.