【问题标题】:Remove duplicates within a time range in vba (e.g. duplicates within a week)删除vba中某个时间范围内的重复项(例如一周内的重复项)
【发布时间】:2018-12-11 06:31:10
【问题描述】:

我正在进行一项研究,如果研究参与者在两周内再次参与,他们将被视为重复,但如果他们在 2 周的冷静期后再次参与,他们不是重复。我需要一种在 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 周多之后)?我有数千行。

非常感谢

【问题讨论】:

  • 您可以添加一个带有公式的列,该公式确定此记录是否应被视为重复记录,可能返回TRUE/FALSE,然后根据该列使用RemoveDuplicates。如果没有示例数据、预期输出或示例代码,很难为您提供比这更具体的内容。 (请参阅“How to Ask”以及help center,以及重要提示here。)
  • 谢谢 ashleedawg,我添加了一些示例数据和用于删除一般重复项的代码。

标签: vba excel duplicates date-range


【解决方案1】:

试试这个删除重复项

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

【讨论】:

    猜你喜欢
    • 2020-03-02
    • 2022-06-14
    • 2011-06-24
    • 2023-01-16
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多