Excel中条件计数COUNTIF,Power BI用哪个函数?
按条件进行计数是个很常见的需求,Excel有个专门的函数COUNTIF来做这种计算,PowerBI有没有类似的函数呢?
PowerBI并没有与COUNTIF功能完全相同的函数,不过做这种计算也并不是难事,下面就以这个简单的数据为例:
来看看PowerBI对类别进行计数的几种方法。
PowerQuery法
添加自定义列:
List.Count(
Table.SelectRows(
源,(x)=>x[类别]=[类别]
)[类别]
)
如果要按月来统计类别的数量,只需要增加一个筛选的条件即可:
List.Count(
Table.SelectRows(
源,(x)=>x[类别]=[类别] and x[月份]=[月份]
)[类别]
)
利用DAX添加计算列法
在数据模型中利用DAX也是同样的思路,添加计算列:
类别计数 =
COUNTROWS(
FILTER(
\’数据表\’,
\’数据表\'[类别]=EARLIER(\’数据表\'[类别])
)
)
按月来统计类别的数量可以这样写:
类别计数 按月 =
COUNTROWS(
FILTER(
\’数据表\’,
\’数据表\'[类别]=EARLIER(\’数据表\'[类别])&&
\’数据表\'[月份]=EARLIER(\’数据表\'[月份])
)
)
利用DAX建立度量值法
如果用度量值来计算类别的数量,应该怎么做呢?其实可以更简单:
类别计数 度量值 = COUNTROWS(\’数据表\’)
如果想看类别的计数,将类别作为上下文即可:
如果按月查看类别的计数,只需要上下文中加入月份:
如果是添加列的方式来计数,无论是PowerQuery自定义列还是DAX计算列,思路是一样的,只是用的函数不同而已。
而通过度量值来计数,要简单很多,关键是厘清楚分析和展现的逻辑,提供合适的上下文。
PowerBI星球 采悟
Excel中的多条件统计,掌握这几个函数公式就够了,收藏备用
多条件统计,一直是Excel中的重要组成部分,如果不掌握一定的技巧和方法,就很难做到轻松应对。
一、If+And:多条件判断。
目的:如果员工的年龄>30,且未婚,则返回“晚婚”,否则返回空值。
方法:
在目标单元格中输入公式:=IF(AND(C3>30,E3=\”未婚\”),\”晚婚\”,\”\”)。
解读:
If函数是条件判断函数,巧妙借助And进行了多条件判断,如果多个条件同时成立,则返回指定的值,否则返回另一个指定的值。
二、Sumif:单条件求和。
函数:Sumif。
功能:对满足条件的单元格求和。
语法结构:=Sumif(条件范围,条件,[求和范围])。
目的:按性别统计总“月薪”。
方法:
在目标单元格中输入公式:=SUMIF(D3:D12,J3,G3:G12)。
解读:
因为条件范围和求和范围不同,所以此处的求和范围不可省略。
三、Sumifs:多条件求和。
函数:Sumifs。
功能:对一组给定条件指定的单元格求和。
语法结构:=Sumifs(求和范围,条件1范围,条件1,[条件2范围],[条件2]……)。
解读:
参数“条件范围”和“条件”必须匹配出现,即有范围,必有条件,或者有条件必有范围。
目的:按“性别”统计相应“学历”下的总“月薪”。
方法:
在目标单元格中输入公式:=SUMIFS(G3:G12,D3:D12,J3,F3:F12,K3)。
解读:
Sumifs函数也可以实现Sumif的功能,即只有一个条件的多条件求和。
四、Countif:单条件计数。
函数:Countif。
功能:计算指定区域中满足条件的单元格数量。
语法结构:=Countif(条件范围,条件)。
目的:按“性别”统计人数。
方法:
在目标单元格中输入公式:=COUNTIF(D3:D12,J3)。
五、Countifs:多条件计数。
函数:Countifs。
功能:统计一组给定条件下符合条件的单元格数量。
语法结构:=Countifs(条件1范围,条件1,[条件2范围],[条件2]……)。
解读:
参数“条件范围”和“条件”必须成对出现。
目的:按“性别”统计相应“学历”下的人数。
方法:
在目标单元格中输入公式:=COUNTIFS(D3:D12,J3,F3:F12,K3)。
解读:
Countifs函数也可以实现Countif的功能,即只有一个条件的多条件计数。
六、AverageIfs:多条件下的平均值。
函数:Averageifs。
功能:查找一组给定条件指定的单元格的算术平均值。
语法结构:=Averageifs(数据范围,条件1范围,条件1,[条件2范围],[条件2]……)。
目的:按“性别”统计相应“学历”的平均“月薪”。
方法:
在目标单元格中输入公式:=AVERAGEIFS(G3:G12,D3:D12,J3,F3:F12,K3)。
解读:
求平均值的函数中,除了Average外,就只有AverageIfs函数,并没有Averageif函数,但用Averageifs函数也可以实现单条件下的平均值计算。
七、Lookup:多条件查询。
函数:Lookup。
功能:从单行或单列或数组中查询符合条件的值。
语法结构:
向量形式:=Lookup(查询值,查询值所在范围,[返回值所在范围])。
数组形式:=Lookup(查询值,查询值和返回值均在的数据范围)。
解读:
此处用到的多条件查询其实为Lookup的变异形式,语法结构为:=Lookup(1,0/((条件1范围=条件1)*(条件2范围=条件2)……),返回值范围)。其本质还是Lookup的向量形式。
目的:根据“部门”和“职位”查询“员工姓名”。
方法:
在目标单元格中输入公式:=LOOKUP(1,0/((B3:B12=L3)*(C3:C12=M3)),D3:D12)。
最美尾巴:
文中从多条件判断,求和、计数、以及计算平均值和查询引用等方面介绍了常用了常用的“多条件”技巧,如能熟练掌握,定能如虎添翼,轻松解决办公中遇到的“多条件”统计问题。
Countif函数的9个统计应用技巧,即学即用,简单高效
Countif函数,是最常用的条件计数函数之一,如果你仅仅会基础用法,那就Out了,小编共总结了9个统计应用技巧,即学即用,简单高效!在正式学习之前,我们先来掌握以下它的功能及语法结构。
功能:计算指定区域中满足给定条件的单元格数目。
语法结构:=Countif(条件范围,条件)。
解读:
条件范围和条件必须是对应的,否则无法得到正确的结果。
一、Countif:单条件计数。
目的:计算相应“部门”中的“员工”数量。
方法:
在目标单元格中输入公式:=COUNTIF(B$3:B$12,K3)。
二、Countif:按指定范围计数。
目的:按指定范围计算相应的员工数。
方法:
在目标单元格中输入公式:=COUNTIF(H3:H12,\”<=15000\”)、=COUNTIF(H3:H12,\”>15000\”)-COUNTIF(H3:H12,\”>25000\”)、=COUNTIF(H3:H12,\”>25000\”)。
三、Countif:对空白单元格区域计数。
目的:统计还未发“月薪”的人数。
方法:
在目标单元格中输入公式:=COUNTIF(H3:H12,\”\”)
解读:
除了上述公式外,也可以用Countblank函数实现,公式为:=COUNTBLANK(H3:H12)。
四、Countif:对非空白单元格区域计数。
目的:统计已发“月薪”的人数。
方法:
在目标单元格中输入公式:=COUNTIF(H3:H12,\”<>\”)。
解读:
符号“<>”为:不等于。
五、Countif:模糊计数。
目的:统计“学历”为“大本”和“大专”的人数。
方法:
在目标单元格中输入公式:=COUNTIF(G3:G12,\”大*\”)。
解读:
*(星号)在Excel中未通配符,可以匹配任意长度的字符。
六、Countif:判断指定的值是否重复。
目的:统计“学历”是否重复。
方法:
在目标单元格区域中输入公式:=IF(COUNTIF(G$3:G$12,G3)>1,\”重复\”,\”\”)。
解读:
如果指定的值重复,则个数肯定大于1。
七、Countif:判断指定的值是否首次出现。
目的:如果指定的“学历”首次出现,返回“是”,否则返回“否”。
方法:
在目标单元格中输入公式:=IF(COUNTIF(G$3:G3,G3)=1,\”是\”,\”否\”)。
解读:
此技巧的重点在于参数范围的相对引用,如果将公式修改为:=IF(COUNTIF(G$3:G12,G3)=1,\”是\”,\”否\”),并不能得到正确的结果。
八、Countif:判断指定的值是否最后出现。
目的:如果指定的“学历”最后一次出现,返回“是”,否则返回“否”。
方法:
在目标单元格中输入公式:=IF(COUNTIF(G3:G$12,G3)=1,\”是\”,\”否\”)。
解读:
注意参数范围的相对引用,和第7个技巧的参数范围作比较,便能得到应用技巧。
九、Countif:禁止录入重复值。
目的:禁止录入重复的“员工姓名”。
方法:
1、选定目标单元格区域,即C3:C12区域,单击【数据】菜单中【数据工具】组中的【数据验证】,打开【数据验证】对话框。
2、选择【允许】中的【自定义】,在【公式】文本框中输入:=COUNTIF(C$3:C$12,C3)=1。
3、单击【出错警告】标签,在【标题】文本框中输入:提示;在【错误信息】文本框中输入:禁止录入重复信息!并单击右下角的【确定】即可。
最美尾巴:
文中从Countif函数的特点出发,介绍了9个应用技巧,从实现效果看,Countif并不单单是单条件计数,但本质仍是单条件计数,所以在应用的过程中,要灵活对待!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。