2017-08-28 26 views
-2

タイムスタンプが繰り返されたテーブルがあります(1秒以内に複数のレコードがあります)。 1秒ごとに可変数のレコードがあります。 1レコードから1秒間に103レコードまでの範囲です。私は、同じタイムスタンプを持つすべてのレコードからランダムなレコードを1つだけ選択する方法を開発したいと考えています。Excelの自動ランダム選択

可能であれば、式(またはマクロ/ 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