Удалять дубликаты в пределах временного диапазона в vba (например, дубликаты в течение недели) - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над исследованием, в котором участник исследования считается дубликатом, если он снова участвует в течение двух недель, но они не являются дубликатом, если они участвуют снова после двухнедельного периода охлаждения. Мне нужен способ проверить / удалить дубликаты участников в течение 2 недель, но сохранить их, если они дублируют, в течение 2 недель.

Данные выглядят примерно так:

Test    Participant ID   Date
1       550              01/01/2018
2       550              02/01/2018
3       677              05/01/2018
4       550              15/02/2018

Обычно я бы использовал Range.RemoveDuplicates , чтобы просто удалить дубликаты. Это удалит тесты 2 и 4.

Sub removeduplicate()
Range("A1:C5").CurrentRegion.RemoveDuplicates Columns:=Array(2), Header:=xlYes
End Sub

Есть ли способ изменить или добавить к этому, чтобы я удалял дубликат в строке 2, но не дубликат в строке 4 (так как это происходит более чем через 2 недели)? У меня тысячи строк.

Большое спасибо

1 Ответ

0 голосов
/ 03 июля 2018

Попробуйте удалить дубликаты

Sub Duplicates()

Dim i As Long
 i = ActiveSheet.UsedRange.Rows.Count
 x = Cells(2, 2).Value
 For j = 3 To i
If Cells(j, 2).Value = "" Then
Cells(j, 2).Value = x
Else
x = Cells(j, 2).Value    
End If
Next j
End Sub
...