工作中,有很人员来自不同的部门,现在想看看各部门有多少人,对于这种删除重复值并按条件计数的问题,在Excel中,你会怎么做?
我们将对比三种不同的方法,看看哪一种更胜一筹。
第一种方法:函数法
要分两步:
第一步,提取重复值:
UNIQUE函数来提取唯一值:
=UNIQUE(C2:C40)
就可以轻松地从C2到C40的范围内提取出不重复的值。
第二步,为了计算每个唯一值在原始数据中出现的次数,我们可以使用COUNTIF函数。
输入公式:=COUNTIF($C$2:$C$40,F2)
就可以得到F2单元格中的值在C列中出现的次数。
然而,这种方法的一个缺点是,当数据源增加时,我们需要手动修改函数内部的单元格范围。
第二种方法,数据透视表法
另一种便捷的方法是使用Excel的数据透视表功能。
只需在表格中点击任一单元格,然后选择“插入”->“数据透视表”,并将数据透视表放在现有工作表中。
接着,将需要统计的字段(如部门)拖到行区域,并将同一个字段再次拖到值区域以计算计数。
这种方法的好处是直观易懂,但同样存在局限性。
当数据源增加时,我们需要手动刷新数据透视表以获取最新的统计结果。
第三种方法:VBA代码
最后,我们来介绍一种更为高效和灵活的方法——使用VBA代码。
工作表右键,并点击“查看代码”选项。这会打开Excel的VBA编辑器
这会打开Excel的VBA编辑器,输入以下这段代码:
以下找码可以直接拷贝:
输入代码:
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
回到工作表界面,来打开“宏”对话框,选择你刚才创建的宏,然后点击“运行”。
就会看到每个部门的人数统计结果了!
无论数据源如何增加,这段代码都能自动适应并给出正确的统计结果。
三种方法的比较
函数法:虽然简单易学,但需要记住函数的使用方法,并且在数据源增加时需要手动修改函数内部的单元格范围。
数据透视表法:直观易懂,适合对数据分析不太熟悉的人使用。但同样存在数据源增加时需要手动刷新的问题。
VBA代码法:一次性写好代码后,可以终身使用,无需担心数据源增加的问题。而且,VBA代码具有强大的自定义和自动化能力,可以大大提高工作效率。
综上所述,三种方法各有优缺点。你会选择哪种?
评论 (0)