У меня есть таблица Excel с большим количеством строк.
Я хотел бы взять случайную выборку, скажем, 100 строк, и спрятать оставшуюся часть, скажем, отображение 1 строки на 500 строк или абсолютно случайный выбор всего листа.
Как я могу это сделать?
У меня есть таблица Excel с большим количеством строк.
Я хотел бы взять случайную выборку, скажем, 100 строк, и спрятать оставшуюся часть, скажем, отображение 1 строки на 500 строк или абсолютно случайный выбор всего листа.
Как я могу это сделать?
Вы можете добавить столбец случайных чисел, используя формулу =RAND( )
между скобками не должно быть ничего:
Скопируйте формулу по всему набору данных, чтобы все строки были заполнены. Затем вы можете использовать «Числовые фильтры» и выбрать «Топ 10»:
Измените значение на «100», и фильтр выберет «100 лучших» случайных значений. Результатом будет случайная выборка из 100 строк. Там может быть лучше или проще, но это сработает.
Это полностью основано на превосходном подходе Бейтсана (который этот макрос автоматизирует).
Скажем, мы начали с одного столбца и, следуя совету Бейтсана, добавили столбец =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
производит:
Каждый раз, когда макрос перезапускается, выбирается новый набор из трех случайных строк!