Excel 行抽样

Excel 行抽样

我有一张包含大量行的 Excel 表。

我想随机抽取 100 行并隐藏其余行,每 500 行显示 1 行,或者完全随机选择整个工作表也可以。

我怎样才能做到这一点?

答案1

=RAND( )您可以添加一个随机数列,使用括号中不包含任何内容的公式:

使用‘=RAND()’公式

将公式复制到整个数据集,以便填充所有行。然后,您可以使用“数字过滤器”并选择“前 10 名”:

数字过滤器菜单

将值更改为“100”,过滤器将选择“前 100 个”随机值。结果将是 100 行的随机样本。可能有更好或更简单的方法,但这种方法可行。

答案2

这完全基于贝特桑的优秀方法(该宏可自动执行)

假设我们从单列开始,然后按照 Batesan 的建议添加了一列=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

生成:

在此处输入图片描述

每次重新运行宏时,都会选择一组新的三行随机行!

相关内容