工作中,有很人员来自不同的部门,现在想看看各部门有多少人,对于这种删除重复值并按条件计数的问题,在Excel中,你会怎么做?

我们将对比三种不同的方法,看看哪一种更胜一筹。

第一种方法:函数法

要分两步:

第一步,提取重复值:

UNIQUE函数来提取唯一值:

=UNIQUE(C2:C40)

就可以轻松地从C2到C40的范围内提取出不重复的值。

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

第二步,为了计算每个唯一值在原始数据中出现的次数,我们可以使用COUNTIF函数

输入公式:=COUNTIF($C$2:$C$40,F2)

就可以得到F2单元格中的值在C列中出现的次数。

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

然而,这种方法的一个缺点是,当数据源增加时,我们需要手动修改函数内部的单元格范围。

第二种方法,数据透视表法

另一种便捷的方法是使用Excel的数据透视表功能。

只需在表格中点击任一单元格,然后选择“插入”->“数据透视表”,并将数据透视表放在现有工作表中。

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

接着,将需要统计的字段(如部门)拖到行区域,并将同一个字段再次拖到值区域以计算计数。

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

这种方法的好处是直观易懂,但同样存在局限性。

当数据源增加时,我们需要手动刷新数据透视表以获取最新的统计结果。

第三种方法:VBA代码

最后,我们来介绍一种更为高效和灵活的方法——使用VBA代码。

工作表右键,并点击“查看代码”选项。这会打开Excel的VBA编辑器

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

这会打开Excel的VBA编辑器,输入以下这段代码:

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

以下找码可以直接拷贝:

输入代码:

Sub 提取部门与人数()

[c:c].Copy [e1]

[e:e].RemoveDuplicates 1, xlNo

Range("F2:F" & Cells(Rows.Count, 5).End(xlUp).Row).FormulaR1C1 = "=COUNTIF(C[-3],RC[-1])"

End Sub

回到工作表界面,来打开“宏”对话框,选择你刚才创建的宏,然后点击“运行”。

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

就会看到每个部门的人数统计结果了!

Excel挑战用最短代码,实现删除重复值并按条件计数的三种方法-趣帮office教程网

无论数据源如何增加,这段代码都能自动适应并给出正确的统计结果。

三种方法的比较

函数法:虽然简单易学,但需要记住函数的使用方法,并且在数据源增加时需要手动修改函数内部的单元格范围。

数据透视表法:直观易懂,适合对数据分析不太熟悉的人使用。但同样存在数据源增加时需要手动刷新的问题。

VBA代码法:一次性写好代码后,可以终身使用,无需担心数据源增加的问题。而且,VBA代码具有强大的自定义和自动化能力,可以大大提高工作效率。

综上所述,三种方法各有优缺点。你会选择哪种?