2017-08-28 105 views
-2

我有重复时间戳(1秒内有多个记录)的表。每秒钟内有不定数量的记录;一秒钟内从1条记录到103条记录。我希望开发一种方法来从所有具有相同时间戳的记录中只选择一个随机记录。Excel自动随机选择

时间列是列A.如果可能,我希望公式(或宏/ VBA)的最终结果在随机选择的行中的列B中具有单词Keep。所有其他非随机选择的行可以留空。

谢谢,我道歉,如果我的示例数据表格格式不正确。

Time 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:05 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:06 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:07 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:08 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:09 
7:51:10 
7:51:10 
7:51:11 
7:51:11 
7:51:11 
7:51:11 
7:51:11 
7:51:11 
7:51:12 
7:51:12 
7:51:13 
7:51:13 
7:51:13 
7:51:13 
7:51:13 
7:51:13 
7:51:14 
7:51:14 
7:51:15 
7:51:15 
7:51:15 
7:51:15 
7:51:15 
7:51:15 
7:51:16 
7:51:16 
7:51:17 
7:51:17 
7:51:17 
7:51:17 
7:51:17 
7:51:17 
7:51:18 
7:51:18 
7:51:19 
7:51:19 
7:51:19 
7:51:19 
7:51:19 
7:51:19 
7:51:20 
7:51:20 
7:51:21 
7:51:21 
7:51:21 
7:51:21 
7:51:21 
7:51:21 
7:51:22 
7:51:22 
7:51:22 
7:51:22 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
7:51:23 
+0

时间总是会被排序吗? – Horaciux

回答

0

假设值将被排序,下面的代码应该工作。您应该逐步完成代码,以确保其按预期工作,一旦删除了.select语句。我只测试了一下,所以我把它留给你测试更彻底。您可以点击此链接成为familiar with the RND function

Option Explicit 
Sub randChoice() 
Dim stRow As Long, endRow As Long, t As Integer 
stRow = 2 
endRow = stRow + 1 
While Cells(endRow, 1) <> "" 
    Do 
    Cells(endRow, 1).Select 
    If Cells(stRow, 1) <> Cells(endRow, 1) Then Exit Do 
    endRow = endRow + 1 
    Loop 
    Randomize 
    t = Int((endRow - stRow) * rnd) 
    Cells(stRow + t, 2) = "Keep" 
    stRow = endRow 
    endRow = stRow + 1 
Wend 
End Sub