优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel多条件不重复计数,4种方法,总有一种适合你

nanyue 2024-10-20 07:43:28 技术文章 15 ℃

前几天工作中有一个小伙伴问到了一个问题,是关于多条件不重复计数的问题,小必给大家分享三种方法,依次是透视表、公式函数、Excel Power Query以及SQL的方法。

给大家上一下数据源,如下图所示:

对每个年月对应的编码进行不重复计数。结果如下图所示:

方法1:数据透视表

Step-01:选择数据源区域A1:C27,单击【插入】-【数据透视表】,在弹出的对话框中选择存放的位置,然后勾选【将此数据添加到数据模型】,最后单击【确定】。如下图所示:

Step-02:在透视表字段列表布局中,将“年”与“月”拖放至【行字段】,将“编码”拖放至【值】,然后右键单击【行】中的“编码”字段,然后在弹出的对话框中选择【非重复计数】。如下图所示:

Step-03:设置透视表布局。最后结果如下图所示:

方法2:公式函数法

在G2单元格中输入公式:

=SUMPRODUCT(((E2=$A$2:$A$27)*(F2=$B$2:$B$27))/COUNTIFS($A$2:$A$27,$A$2:$A$27,$B$2:$B$27,$B$2:$B$27,$C$2:$C$27,$C$2:$C$27)),然后按Enter键完成下拉。

对于上面的公式,有兴趣的小伙伴可以按F9或者公式求值一步步去拆解其原理,这里限于篇幅,再做过多的解释。

方法3:Excel Power Query

Step-01:选择数据区域,单击【数据】-【从表格/区域】,在弹出的对话框中选择【确定】。如下图所示:

Step-02:在Power Qeury编辑器界面中先删除步骤【更改的类型】,然后同时选择"年"与“月”两列,然后单击【分组依据】,在弹出的对话框中输入【新列名】,【操作】为【非重复计数】,如下图所示:

或者直接在公式编辑栏中输入公式:

= Table.Group(源, {"年", "月"},

{

{

"编码不重复计数",

each Table.RowCount( Table.Distinct(_))

}

}

)

Step-03:然后数据加载至工作表中,如下操作:

方法4:在Excel中使用SQL

Step-01:选择【数据】-【现有链接】,在弹出的对话框中选择【浏览更多】,找到当前工作簿的位置,单击【打开】,选择要操作的工作表。如下图所示:

Step-02:在弹出的对话框中选择【属性】,再次在打开的对话框中选择【定义】,如下图所示:

Step-03:在弹出的对话框中的【命令文本】文本框中输入SQL代码,如下图所示:







select distinct 年,月,count(*) as 不重复编码计数from (select distinct 年,月,编码from[Sheet1$]) as agroup by 年,月

Step-04:最后单击【确定】后即可。结果如下图所示:

最近发表
标签列表