获取不重复值的几种方法

在很多情况下,我们都要获取不重复值,以方便进一步使用。

下面介绍几种获取不重复值的方法,供参考。

如下图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

(0)

相关推荐