WPS表格中的不重复项如何快速提取
工作中经常会碰到需要从大量数据列表中提取无重复项的工作。对于这类删除重复项的工作,一般只要使用高级筛选即可轻松实现。不过很多情况下我们在得到无重复列表后,还不时需要对原表数据进行修改增减。这就要求在不破坏原表前提下,当原表内容改变时能自动重新提取无重复项列表。这种能自动刷新的无重复列表只利用高级筛选显然会很麻烦。在 WPS Office 2010的 WPS 表格中,我们有两种方法可以实现这种自动提取无重复项的效果。
数据透视表
数据透视表是 WPS 表格中的一个数据汇总统计功能。由于汇总就是对相同项目的数据进行统计,汇总结果中相同项目只显示为一行,因此可以用来提取无重复列表。就以原表数据保存在B列,提取的无重复列表存放到D列中为例来说吧。
生成列表
用 WPS 表格打开保存数据的工作表,选中原数据所在列(B列)。单击菜单“数据/数据透视表…”,在“创建数据透视表”窗口“请选择放置数据透视表的位置”下选中“现有工作表”单选项,并输入位置为$D:$D(图1),确定完成设置后会显示“数据透视表字段列表”窗格。在此窗格中把“选择要添加到报表的字段”中把“原数据”项选中,拖动到下面的“行标签”中。马上可以看到D列中显示出B列原表数据的无重复列表了(图2)。
注:在此若再把“选择要添加到报表的字段”中的“原数据”拖动到“Σ数值”中,还可以在E列统计出各个无重复项的重复次数。
清除无关项
自动生成的无重复列表下多了空白和总计,得让它们消失,顺便再设置一下自动刷新。在“行标签”区域中选中“原数据”项,右击选择“字段设置”在弹出窗口的“显示”选项卡下列表中,单击取消最后面“空白”复选项前的√(图3),确定后即可不显示空白项。再次右击“原数据”项选择“表格选项”,单击取消“列总计”复选项的√,并单击选中“打开时刷新”复选项(图4),确定返回则可隐藏总计。当然最后你还可以再修改一下列标题、格式等等。
OK,以后你对B列数据进行修改、增减后,只要选中D列的任一单元格,在显示的“数据透视表”工具栏上单击“刷新”图标即可看到最新的无重复列表。即使你不去刷新,在重新打开此文件时, WPS 表格也会自动帮你刷新无重复列表。
函数公式
数据透视表虽然可以自动刷新,但需要即时刷新的话,往往还得我们去单击刷新才行。下面再介绍一个可以确实实现自动即时刷新的无重复列表。
编号索引
用 WPS 表格打开保存数据的工作表,在A1单元格输入0,在A2输入公式=IF(COUNTIF($B$2:B2,B2)=1,A1+1,A1),拖动A2单元格的填充柄把数据向下复制填充出足够的行数,至少要超过原表数据可能输入的最大行数。这样从B2算下来就只有第一个没重复的项会显示不同的序号,而与上面项有重复的则只会显示和上一行相同的序号(图5),也就是说各个序号的第1个就是无重复项了。编号公式的列一定要在原表数据前面,若你的原表数据前面已经没有空列可用的话,则需要选中原数据所在列,右击选择“插入”在前面插入一列空列,再在插入列中设置公式。
提取无重复项
在D1单元格输入标题为无重复列表。然后在D2单元格输入公式=IF(ROW()-1>MAX(A:A),"",VLOOKUP(ROW()-1,A:B,2,0))并拖动填充柄向下复制填充出足以显示所有无重复项的行数。现在对B列中的原表数据进行修改、增加或删除, WPS 表格都会即时自动重新提取B列数据中的无重复列表并显示在D列中(图6)。如果你不喜欢看到A列的编号,那么最后可以右击A列选择“隐藏”,即可把A列的编号藏起来。
公式中VLOOKUP(ROW()-1,A:B,2,0)表示在A:B区域中查找A列数据等于ROW()-1的单元格并返回该行B列的值。ROW()-1是通过把当前行号减1来自动生成1、2、3……序列数。VLOOKUP有一个特点,那就是当查找范围内有多个符合要求的值时,它只会返回符合条件的第一个值,我们就是利用了这一特点才能实现无重复列表的提取。而前面的IF和ROW()-1>MAX(A:A)则是用来判断当序列数大于A列的最大值时不显示,因为此时VLOOKUP按序列数是找不到项的。
以上两种方法各有优点,使用数据透视表可以在在显示无重复列表的同时显示重复次数,而且完全不用修改原表,缺点是不能完全实时自动刷新。而通过函数公式的方法虽然可完全做到自动实时刷新,但必需在原表中添加索引数列。具体要用哪一个方法大家可视情况自己选择吧