在很多情况下,我们都要获取不重复值,以方便进一步使用。 下面介绍几种获取不重复值的方法,供参考。
如下图1所示的示例工作表,希望获取不重复的班级列表。 图1
方法1:使用高级筛选 在Excel中,单击“数据”选项卡“排序和筛选”组中的“高级”按钮。在“高级筛选”对话框中,选中“将筛选结果复制到其他位置”,列表区域为:B1:B7,复制到单元格E1,并选中“选择不重复的记录”复选框,如图2所示。 图2 单击“确定”后的结果如图3所示。 图3
方法2:使用数据透视表 首先,选择单元格区域A1:C7中的任一单元格。 然后,单击“插入”选项卡中的“数据透视表”。在“创建数据透视表”对话框中的设置如图4所示。 图4 接着,选择“班级”为行字段,结果如图5所示。 图5 复制并粘贴数据透视表中的值到其他行,如图6所示。 图6 最后,删除创建的数据透视表。
上面两种方法都非常方便且简单,但当修改数据后,结果不能自动更新。然而,使用公式时,当数据变化时结果会自动更新。
方法3:使用公式 3.1 使用辅助列 在单元格D2中输入公式: =SUM(COUNTIF(B$2:B2,B2)=1,D1) 然后,下拉至单元格D7。
在单元格D9中输入公式: =MAX(D2:D7) 获取单元格区域B2:B7中不重复值的个数。
在单元格D13中输入公式: =IF(C13>D$10,'',INDEX(B$2:B$7,MATCH(C13,$D$2:$D$7,0))) 然后下拉直至出现空单元格。 最终的结果如下图7所示。 图7
3.2 使用数组公式(1) 这是在《Excel函数学习38:FREQUENCY函数》中介绍的公式。 首先,在单元格E2中输入数组公式: =SUM(IF(FREQUENCY(IF(B2:B7<>'',MATCH(B2:B7,B2:B7,0)),ROW(B2:B7)-ROW(B2) 1),1)) 求出单元格区域B2:B7中不重复值的个数。
在单元格E5中输入数组公式: =IF(ROWS(E$5:E5)>$E$2,'',INDEX($B$2:$B$7,SMALL(IF(FREQUENCY(IF($B$2:$B$7<>'',MATCH($B$2:$B$7,$B$2:$B$7,0)),ROW($B$2:$B$7)-ROW($B$2) 1),ROW($B$2:$B$7)-ROW($B$2) 1),ROWS(E$5:E5)))) 得到第1个值。 然后将公式下拉至出现空单元格为止,结果如图8所示。 图8
3.3 使用数组公式(2) 这是在《Excel函数学习37:SMALL函数》中介绍的公式,也是在《Excel公式练习8:获取单元格区域中的不重复值》中详细讲解过的公式。
选取单元格区域E2:E7,输入数组公式: =IFERROR(INDEX(B2:B7,SMALL(IF(MATCH(B2:B7,B2:B7,0)=ROW(INDIRECT('1:'&ROWS(B2:B7))),MATCH(B2:B7,B2:B7,0),''),ROW(INDIRECT('1:'& ROWS(B2:B7))))),'') 结果如图9所示。 图9
你还有什么好方法吗?欢迎分享。
本文属原创文章,转载请注明出处。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 |
|