网站首页 > 技术文章 正文
前几天工作中有一个小伙伴问到了一个问题,是关于多条件不重复计数的问题,小必给大家分享三种方法,依次是透视表、公式函数、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:最后单击【确定】后即可。结果如下图所示:
猜你喜欢
- 2024-10-20 常用SQL系列之(八):列值累计、占比、平均值以及日期运算等
- 2024-10-20 选读SQL经典实例笔记02_多表查询(sql语句多表查询案例)
- 2024-10-20 不知道怎么分析MySQL查询瓶颈,这款自带工具太香了,强烈推荐
- 2024-10-20 怎么找出连续5天登录的用户,大数据面试题sql
- 2024-10-20 Pandas与SQL的数据操作语句对照(pandas和sql哪个速度快)
- 2024-10-20 「Excel」筛选不重复的数据—Part1
- 2024-10-20 Excel零基础学SQL22:中式排名,美式排名,分组排名
- 2024-10-20 MySql基础使用「增删改查」20211221
- 2024-10-20 Pandas&SQL语法归纳总结,真的太全了
- 2024-10-20 hive select 语法使用详解(hive select * from)
- 04-29kali2021ping 外网不通
- 04-29我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- 04-29注册下载啊
- 04-29Spring 中三种 BeanName 生成器!
- 04-29mysql学习9:创建数据库
- 04-29Linux之yum源详解
- 04-29夏日终曲/请以你的名字呼唤我/Call me by your name(无剧透)
- 04-29注释竟然还有特殊用途?一文解惑 //go:linkname 指令
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)