4

У меня есть таблица Excel с большим количеством строк.

Я хотел бы взять случайную выборку, скажем, 100 строк, и спрятать оставшуюся часть, скажем, отображение 1 строки на 500 строк или абсолютно случайный выбор всего листа.

Как я могу это сделать?

2 ответа2

6

Вы можете добавить столбец случайных чисел, используя формулу =RAND( ) между скобками не должно быть ничего:

Используя формулу '= RAND()'

Скопируйте формулу по всему набору данных, чтобы все строки были заполнены. Затем вы можете использовать «Числовые фильтры» и выбрать «Топ 10»:

Меню числовых фильтров

Измените значение на «100», и фильтр выберет «100 лучших» случайных значений. Результатом будет случайная выборка из 100 строк. Там может быть лучше или проще, но это сработает.

2

Это полностью основано на превосходном подходе Бейтсана (который этот макрос автоматизирует).

Скажем, мы начали с одного столбца и, следуя совету Бейтсана, добавили столбец =RAND():

В моем простом примере в таблице всего 18 записей, и я хочу выбрать 3 случайным образом.

Запуск короткого макроса:

Sub PickThree()
    Dim sh As Worksheet, rng As Range

    Set sh = ActiveSheet
    Set rng = sh.Range("A1:B19")

    If sh.AutoFilterMode = False Then rng.AutoFilter Field:=2
    If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

    Calculate
    rng.AutoFilter Field:=2, Criteria1:="3", Operator:=xlTop10Items
End Sub

производит:

Каждый раз, когда макрос перезапускается, выбирается новый набор из трех случайных строк!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .