筛选、随机数和随机抽样

数据处理工作中经常会根据需要只提取一部分数据使用,本文讨论Excel中提取数据两个基本方法,即筛选和随机抽取样本数据。本文演示数据使用“测试数据1.xlsx”,下载地址http://caohuayu.com/res/Res.aspx?id=res20251201。

筛选

前文提到过,将数据区域转换为数据表时会在列名后自动添加用于筛选的按钮,对于普通的工作表区域,同样可以很方便地进行筛选操作。首先,选中数据区域中的某个单元格;然后,点击“开始”选项卡>>“编辑”组>>“排序和筛选”>>“筛选”,此时列名后同样会出现筛选按钮,如下图所示。

进入筛选状态

对某列数据筛选时,可以点击列名后的向下三角按钮,在弹出的菜单中可以直接选择所需要的数据,如下图中选择了f2为“记录0102”的数据。

选择数据

点击“确定”按钮后会隐藏表中的其它数据,如下图所示。

筛选数据

需要取消某一列的筛选条件时可以点击此列筛选菜单中的“从xx中清除筛选器”,其中xx为当前列的列名;取消所有筛选条件时可以点击“开始”选项卡>>“编辑”组>>“排序和筛选”>>“清除”。关闭筛选状态时可以再次点击“开始”选项卡>>“编辑”组>>“排序和筛选”>>“筛选”。

下面分别讨论文本、数字和日期数据的筛选。

文本内容筛选

文本筛选时可以直接输入查询的关键字,此时会自动筛选当前列的数据,如下图显示了f3列中查询“19950321”的条件输入。

按关键字查询文本内容

上图筛选了f3列中包含“19950321”内容的记录,可以看到结果只有一个,点击“确定”按钮后,除这条记录以外的数据都会隐藏。

除了按内容模糊查询,文本内容的查询条件还可以通过筛选菜单中的“文本筛选”项进行更多设置,如下图所示。

文本筛选

实际上,无论点击“文本筛选”子菜单中的哪一个选项,弹出的条件设置窗口都是相同的,只默认选中的条件不同,如下图所示。

自定义自动筛选条件设置

上图箭头所指的地方可以选择条件类型,常用的包括:

  • 等于,内容完全匹配。
  • 不等于,内容不完全一样。
  • 开头是,以指定的内容开始。
  • 开头不是,不以指定的内容开始。
  • 结尾是,以指定的内容结束。
  • 结尾不是,不以指定的内容结束。
  • 包含,文本中包含指定的内容。
  • 不包含,文本中不包含指定的内容。

此外,这里最多可以设置两个条件,关系为“与”和“或”,如下图设置的两个条件是f3列包含“199508”或“199608”,

两个筛选条件

点击“确定”后的筛选结果如下图所示。

两个条件的筛选结果

查询条件中还可以使用通配符,如问号(?)匹配一个符,星号(*)匹配任意多个字符。如下图中设置的查询内容“19????01”会查询19xx年各月1号出生的记录,其中的4个问号可以匹配年份的后2位和2位月份内容,而最后的01则匹配就是1号。

使用查询通配符

点击“确定”后查询结果如下图所示。

查询各月1号出生记录

数字内容筛选

相对于文本内容筛选,数字筛选条件设置更加丰富,如下图显示了f4列中“数字筛选”子菜单的内容。

数字筛选菜单

数字常用的筛选条件包括等于、不等于、大于、大于等于、小于、小于等于,还有一些比较特殊的筛选条件,下面分别讨论。

介于,筛选介于最小值和最大值之间的数据,条件设置如下图所示。

数字介于筛选条件

可以看到,介于条件实际是通过大于等于和小于等于两个条件的组合。本例会筛选f4列1000到2000的记录,筛选结果如下图所示。

数字范围筛选

前10项,可以设置显示最大或最小的n条记录,默认为10;也可以设置为显示比例,对话框中可以进行调整,如下图所示。

显示最大或最小的n条记录

如图中所示,在第一个下拉列表中可以选择“最大”或“最小”,在最后一个下拉列表中可以选择“项”或“百分比”,而中间的数值则表示n项或n%。

高于平均值或低于平均值,可以自动显示大于或小于当前列数据平均数的记录。

日期内容筛选

根据日期数据的操作特点,其筛选条件更加丰富,如下图显示了f6列的筛选菜单。

日期筛选条件

如上图所示,数据内容的列表中已经按年、月、日、时、分、秒组织好了日期和时间,这里可以很方便的选取所需的数据记录。对于“日期筛选”子菜单的条件,应注意大量的相对条件,如明天、今天、昨天、明年、今年、去年等等,这些都是相对于系统当前时间而言,工作中可以根据需要选择,如当前为2025年,选择“去年”则只显示2024年数据。

高级筛选

首先选中数据区域中的某个数据单元格,通过“数据”选项卡>>“排序和筛选”组>>“高级”可以打开高级筛选的设置窗口,如下图所示,其中的“列表区域”会自动识别数据所在区域。

高级筛选

接下来需要一个区域来设置筛选条件,先来了解一些基本规则。定义条件的区域也是个二维表格式,其中第一行为设置条件的列名,第二行开始可以设置多行条件;需要注意的是同一行的条件关系是“与”,不同行的条件关系是“或”,如下图设置的筛选条件就是f4、f4a、f4b的数据同时大于2000。

高级筛选条件

请注意是,本例这些条件设置的区域为L1:N2,接下来在高级筛选设置窗口中做如下设置,其中的“列表区域”、“条件区域”、“复制到”区域都可以点击后面的向上箭头图标来选择。

设置高级筛选条件

这里选择“在原有区域显示筛选结果”,筛选结果如下图所示。

高级筛选结果

下图所示的条件会筛选f4大于6000或f4a大于6000或f4b大于6000的数据记录,请注意各列筛选条件分别写在不同的行。

设置“或”关系条件

在高级筛选窗口中设置如下参数。

高级筛选

点击“确定”按钮后可以看到,只要f4、f4a或f4b中的一个大于6000都会被筛选出来。

最后,如果需要提取筛选后的数据,可以点击工作表左上角行号与列名夹角的“全选”按钮选中数据,然后执行复制(Ctrl+C)操作;接下来新建一个新的工作,最在新的工作表中粘贴数据(Ctrl+V)即可。

随机数

Excel中可以使用RAND()函数产生0到1之间的随机数,其结果可能大于等于0但总小于1;另一个产生随机数的函数是RANDBETWEEN(),它可以返回一个指定范围的整数,其参数1和参数2分别指定允许的最小值和最大值,产生的随机数在这两个数值之间,并可能包含这两个值。

下面我们使用随机数来随机抽取数据记录。

随机抽取样本数据

简单的随机抽取样本数据工作在Excel中是很简单的,如“测试数据1.xlsx”中需要随机抽取一部分数据,可以先添加一列,并通过RAND()函数生成一列随机数,如下图所示。

生成随机数列

每次调用RAND()函数生成结果都是不同的,所以您在测试中生成的随机数可能和图中的不同。接下来需要保存随机数的实际值,否则排序后又会重新生成。选中随机数列,进行复制(Ctrl+C)、粘贴值(粘贴选项中含123的图标)操作。

接下来选中随机数列中的一个数据单元格,然后对此列数据进行排序,如升序可以通过“开始”选项卡>>"编辑"组>>"排序和筛选">>"升序"操作。排序后就可以根据需要按顺序提取数据记录,如下图显示了前10行的数据。

随机数排序

统计学中还有很关于数据抽样的知识,有兴趣可以深入学习。