2016-09-02 2 views
0

Я пробовал и не смог найти какой-либо образец кода VBA, который соответствует моим потребностям. То, что я пытаюсь сделать, это найти дубликаты совпадений между двумя столбцами и объединить их по отношению к третьему столбцу, а затем в четвертом столбце указать, сколько экземпляров дубликата существовало изначально.найти дубликат в 2 столбцах и вставить соседние строки

Исходные данные:

enter image description here

Идеальный выход после удаления дубликатов:

screen shot

Как вы можете видеть, на выходе у меня есть 1 экземпляр 1 в Column A, a в Column B, сохранили первое значение, дубликаты начались в Column C и выслали 2 вхождения дубликатов в Column D. Может кто-то указать мне верное направление? Любая помощь будет принята с благодарностью.

+0

здесь один, что делает это для одного столбца, попробуйте изменить его на две колонки. Когда вы застряли, вернитесь и задайте конкретный вопрос о том, какая у вас проблема. Stack Overflow не является кодом для меня: http://stackoverflow.com/questions/38272074/transpose-excel-column-to-rows –

+0

Благодаря @ScottCraner эта ссылка мне очень помогла –

ответ

0

ниже код будет найти количество вхождений в четвертом столбце и удалить дубликаты

Sub foo() 

row_count = 20 

For i = 2 To row_count 
    Count = 1 
    For j = 2 To row_count 
     If i <> j And Cells(i, 1).Value <> "" Then 
      If Cells(i, 1).Value = Cells(j, 1).Value And Cells(i, 2).Value = Cells(j, 2).Value Then 
       Rows(j & ":" & j).Delete Shift:=xlUp 
       Count = Count + 1 
       j = j - 1 
      End If 
     End If 
    Next j 
    If Count > 1 Then 
     Cells(i, 4).Value = Count 
    End If 
Next i 

End Sub