利用高级筛选生成最大值表
2016-12-16王志军
王志军
某学生进行物理实验时遇到一个实际问题,每一个编号的器材都对应3行记录,分别是这个设备的A相、B相、C相的电流值(图1),现在希望将每个编号和对应的最大电流值筛选出来,并填充到一个新建的工作表中。数据较多,需要寻求高效的实现方法。
切换到Sheet1工作表,选择需要操作的源数据区域,即A1:A7990单元格区域,在列表字母A名称框输入“名称”,将选区定义为“名称”(也可定义为其他的名称)。
点击状态栏的“+”按钮,新建工作表Sheet2,切换到“数据”选项卡,在“排序和筛选”功能组选择“高级”按钮,打开“高级筛选”对话框,设置筛选方式为“将筛选结果复制到其他位置”,在列表区域文本框输入“名称”,条件区域不需要设置。点击“复制到”右侧的浏览按钮,在Sheet2工作表选择A1单元格,勾选“选择不重复的记录”复选框。检查无误之后点击“确定”按钮(图2),很快会将不重复的筛选记录复制过来(图3第一列)。
选择B2单元格,在编辑栏输入公式“=MAX(IF(Sheet1!$A$2:$A$7990=A2,Sheet1!$D$2:$D$7990))”,这里使用IF、MAX两个函数进行嵌套。首先利用IF函数判断Sheet1!$A$2:$A$7990是否存在与当前单元格编号一致的编号,如果一致则返回Sheet1!$D$2:$D$7990区域内的数据,也就是满足A2编号的电流值。最后使用MAX函数在符合当前编号条件的数据中找出最大值,按下“Ctrl+Shift+Enter”组合键转换为数组公式,公式执行之后向下拖拽填充柄,很快得到如图3第二列所示的效果,最后对标题栏进行适当设置即可。读者可以分别执行“{=IF(Sheet1!$A$2:$A$7990=A2,Sheet1!$D$2:$D$7990)}”查看公式运行的效果进行研究。
IF函数的语法为IF(logical_test,value_if_true,value_if_false),Logical_test表示计算结果为TRUE或FALSE的任意值或表达式,本文示例为Sheet1!$A$2:$A$7990=A2;Value_if_true logical_test为TRUE时返回的值,本文示例为Sheet1!$D$2:$D$7990,表示返回同一编号的数据;Value_if_false logical_test为FALSE时返回的值,省略时则返回逻辑值。
小提示
本文虽以电流值为例讲述,但对于其他方面的数据统计,只要符合上述形式,均可套用此方法。