Excel自动随机选择

Excel自动随机选择,excel,random,Excel,Random,我的表有重复的时间戳(1秒内有多条记录)。在每秒钟内有数量可变的记录;在一秒钟内从1条记录到103条记录不等。我希望开发一种方法,从具有相同时间戳的所有记录中只选择一个随机记录 时间列是A列。如果可能,我希望公式(或宏/VBA)的最终结果是在随机选择的行的B列中保留单词。所有其他非随机选择的行可以留空 谢谢,如果我的示例数据表格式不正确,我深表歉意 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:

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

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

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

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

假设这些值将被排序,下面的代码应该可以工作。您应该逐步检查代码以确保它按预期工作,一旦工作正常,请删除.select语句。我只是简单地测试了一下,所以我把它留给你们去更彻底地测试。您可以单击此链接成为

选项显式
次级选择()
Dim stRow为长,endRow为长,t为整数
stRow=2
endRow=stRow+1
While单元格(endRow,1)”
做
单元格(结束行,1)。选择
如果单元格(stRow,1)单元格(endRow,1),则退出Do
endRow=endRow+1
环
随机化
t=Int((尾行-stRow)*rnd)
单元格(stRow+t,2)=“保持”
stRow=endRow
endRow=stRow+1
温德
端接头

时间将始终被排序?
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